using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using Newtonsoft.Json; namespace TimeTracker_DAL.Model { public class TTWorkers { public List Workers { get; set; } = new List(); public string Get(int workerId) { if (workerId > -1) { FillClassByWorker(workerId); } else { FillClass(); } string output = JsonConvert.SerializeObject(this); return output; } public string GetByBillingType(int btId) { if (btId > -1) { FillClassByBillingType(btId); } else { FillClass(); } string output = JsonConvert.SerializeObject(this); return output; } public string GetByCompanyId(int compId) { if (compId > -1) { FillClassByCompany(compId); } else { FillClass(); } string output = JsonConvert.SerializeObject(this); return output; } public void FillClass() { TTWorker worker = new TTWorker(); this.Workers.Add(worker); } public void FillClassByWorker(int workerId) { if (workerId == 0) { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false orderby p.workerFName select p; foreach (var a in workers) { TTWorker myWorker = new TTWorker(); myWorker.Id = a.workerId; myWorker.Title = a.workerTitle; myWorker.FirstName = a.workerFName; myWorker.LastName = a.workerLName; myWorker.BillType = a.workerDefaultBillType; this.Workers.Add(myWorker); } } catch (Exception e) { //todo handle e } } else { try { TTWorker myWorker = new TTWorker(); TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerId == workerId && p.workerArch == false orderby p.workerFName select p; myWorker.Id = workers.First().workerId; myWorker.BillType = workers.First().workerDefaultBillType; myWorker.FirstName = workers.First().workerFName; myWorker.LastName = workers.First().workerLName; myWorker.Title = workers.First().workerTitle; myWorker.Archived = workers.First().workerArch; this.Workers.Add(myWorker); } catch (Exception e) { //TODO do something with e } } } public void FillClassByBillingType(int btId) { if (btId == 0) { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false orderby p.workerFName select p; foreach (var a in workers) { TTWorker myWorker = new TTWorker(); myWorker.Id = a.workerId; myWorker.Title = a.workerTitle; myWorker.FirstName = a.workerFName; myWorker.LastName = a.workerLName; myWorker.BillType = a.workerDefaultBillType; this.Workers.Add(myWorker); } } catch (Exception e) { //todo handle e } } else { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false && p.workerDefaultBillType == btId orderby p.workerFName select p; foreach (var a in workers) { TTWorker myWorker = new TTWorker(); myWorker.Id = a.workerId; myWorker.Title = a.workerTitle; myWorker.FirstName = a.workerFName; myWorker.LastName = a.workerLName; myWorker.BillType = a.workerDefaultBillType; this.Workers.Add(myWorker); } } catch (Exception e) { //todo handle e } } } public void FillClassByCompany(int compId) { if (compId == 0) { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false orderby p.workerFName select p; foreach (var a in workers) { TTWorker myWorker = new TTWorker(); myWorker.Id = a.workerId; myWorker.Title = a.workerTitle; myWorker.FirstName = a.workerFName; myWorker.LastName = a.workerLName; myWorker.BillType = a.workerDefaultBillType; this.Workers.Add(myWorker); } } catch (Exception e) { //todo handle e } } else { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false && p.workerCompId == compId orderby p.workerFName select p; foreach (var a in workers) { TTWorker myWorker = new TTWorker(); myWorker.Id = a.workerId; myWorker.Title = a.workerTitle; myWorker.FirstName = a.workerFName; myWorker.LastName = a.workerLName; myWorker.BillType = a.workerDefaultBillType; this.Workers.Add(myWorker); } } catch (Exception e) { //todo handle e } } } public string Count() { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false orderby p.workerFName select p; TTCount myCount = new TTCount(); if (workers.Any()) { myCount.Items = workers.Count(); return JsonConvert.SerializeObject(myCount); } return JsonConvert.SerializeObject(myCount); } catch (Exception e) { return JsonConvert.SerializeObject(e); } } public string CountByCompany(int companyId) { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false && p.workerCompId == companyId orderby p.workerFName select p; TTCount myCount = new TTCount(); if (workers.Any()) { myCount.Items = workers.Count(); return JsonConvert.SerializeObject(myCount); } return JsonConvert.SerializeObject(myCount); } catch (Exception e) { return JsonConvert.SerializeObject(e); } } public string CountByBillingType(int btId) { try { TimeTrackerDataContext db = new TimeTrackerDataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); var workers = from p in db.Workers where p.workerArch == false && p.workerDefaultBillType == btId orderby p.workerFName select p; TTCount myCount = new TTCount(); if (workers.Any()) { myCount.Items = workers.Count(); return JsonConvert.SerializeObject(myCount); } return JsonConvert.SerializeObject(myCount); } catch (Exception e) { return JsonConvert.SerializeObject(e); } } } }