public void Add(AcknowledgementDTO acknowledgementDto, IEnumerable <string> tags) { var acknowledgement = acknowledgementsAssembler.Disassemble(acknowledgementDto); acknowledgement.Tags = new List <Tag>(); using (var context = new AcknowledgementsTrackerContext()) { foreach (var tag in tags) { // Verify if tag already exists if (tagsRepo.Get(tag) != null) { // Add existing tag from database context.Database.Log = message => Debug.WriteLine(message); acknowledgement.Tags.Add(context.Tags .Where(t => t.Title == tag) .FirstOrDefault()); } else { // Create new tag and add it to tags Tag newTag = new Tag(); newTag.Title = tag; acknowledgement.Tags.Add(newTag); } } context.Database.Log = message => Debug.WriteLine(message); context.Acknowledgements.Add(acknowledgement); context.SaveChanges(); } }
public void Remove(int id) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); context.Entry(context.Acknowledgements.Find(id)).State = EntityState.Deleted; context.SaveChanges(); } }
private List <Acknowledgement> GetByTagsOrContent(string search, AcknowledgementsTrackerContext context) { var acknowledgements = context.Acknowledgements.Where(a => a.NormalizedText.Contains(search) || a.Tags.Select(t => t.Title).Contains(search)) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgements); }
public AcknowledgementDTO Get(int id) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgement = context.Acknowledgements.Find(id); return(acknowledgementsAssembler.Assemble(acknowledgement)); } }
public IEnumerable <AcknowledgementDTO> GetAll() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements.ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public void Add(TagDTO tagDto) { var tag = assembler.Disassemble(tagDto); using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = Console.WriteLine; context.Tags.Add(tag); context.SaveChanges(); } }
public void Add(AcknowledgementDTO acknowledgementDto) { var acknowledgement = acknowledgementsAssembler.Disassemble(acknowledgementDto); using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); context.Acknowledgements.Add(acknowledgement); context.SaveChanges(); } }
public void Edit(AcknowledgementDTO acknowledgementDto) { var acknowledgement = acknowledgementsAssembler.Disassemble(acknowledgementDto); using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); context.Entry(acknowledgement).State = EntityState.Modified; context.SaveChanges(); } }
public TagDTO Get(int id) { Tag tag; using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); tag = context.Tags.Find(id); } return(assembler.Assemble(tag)); }
public IEnumerable <TagDTO> GetAll() { IEnumerable <Tag> tags; using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); tags = context.Tags.ToList(); } return(assembler.AssembleCollection(tags)); }
public IEnumerable <TagDTO> GetAcknowledgementTags(int acknowledgementId) { IEnumerable <Tag> tags; using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgement = context.Acknowledgements.Find(acknowledgementId); tags = acknowledgement.Tags; } return(assembler.AssembleCollection(tags)); }
public Dictionary <string, int> GetMostFrequentTagsAllTime() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var result = context.Tags .OrderByDescending(t => t.Acknowledgements.Count()) .Take(10) .ToDictionary(t => t.Title, t => t.Acknowledgements.Count()); return(result); } }
public IEnumerable <AcknowledgementDTO> GetByContent(string keyword) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Where(a => a.NormalizedText.Contains(keyword)) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public IEnumerable <AcknowledgementDTO> GetByUsername(string username) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Where(a => a.BeneficiaryUsername == username || a.AuthorUsername == username) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public TagDTO Get(string title) { Tag tag; using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); tag = context.Tags .Where(t => t.Title == title) .FirstOrDefault(); } return(assembler.Assemble(tag)); }
public IEnumerable <AcknowledgementDTO> GetLastAcknowledgements() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Include(a => a.Tags) .OrderByDescending(a => a.DateCreated) .Take(10) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public IEnumerable <AcknowledgementDTO> GetGiven(string username) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Include(a => a.Tags) .Where(a => a.AuthorUsername == username) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public IEnumerable <AcknowledgementDTO> GetThisMonthsByUser(string username) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Where(a => a.BeneficiaryUsername == username && a.DateCreated.Month == DateTime.Today.Month && a.DateCreated.Year == DateTime.Today.Year) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public Dictionary <string, int> GetAllTimeTopTen() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var topTenAllTime = context.Acknowledgements .GroupBy( a => a.BeneficiaryUsername, (key, values) => new { Username = key, Count = values.Count() }) .OrderByDescending(b => b.Count) .Take(10) .ToDictionary(b => b.Username, b => b.Count); return(topTenAllTime); } }
public string GetAllTimeChampion() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var champion = context.Acknowledgements .GroupBy( a => a.BeneficiaryUsername, (key, values) => new { Username = key, Count = values.Count() }) .OrderByDescending(b => b.Count) .Select(b => b.Username) .First(); return(champion); } }
public IEnumerable <AcknowledgementDTO> GetThisMonthAcknowledgements() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Include(a => a.Tags) .Where(a => a.DateCreated.Year == DateTime.Today.Year && a.DateCreated.Month == DateTime.Today.Month) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public Dictionary <string, int> GetThisMonthTopTen() { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var topTenThisMonth = context.Acknowledgements .Where(a => a.DateCreated.Month == DateTime.Today.Month && a.DateCreated.Year == DateTime.Today.Year) .GroupBy( a => a.BeneficiaryUsername, (key, values) => new { Username = key, Count = values.Count() }) .OrderByDescending(b => b.Count) .Take(10) .ToDictionary(b => b.Username, b => b.Count); return(topTenThisMonth); } }
public IEnumerable <AcknowledgementDTO> GetThisWeekAcknowledgements() { DateTime startOfWeek = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + 1), endOfWeek = startOfWeek.AddDays(7); using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var acknowledgements = context.Acknowledgements .Include(a => a.Tags) .Where(a => a.DateCreated >= startOfWeek && a.DateCreated < endOfWeek) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public Dictionary <string, int> GetTopTenUsersByTag(string tagTitle) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); Tag tag = context.Tags.Where(t => t.Title == tagTitle).FirstOrDefault(); var topTenByTag = context.Acknowledgements .Where(a => a.Tags.Contains(tag)) .GroupBy( a => a.BeneficiaryUsername, (key, values) => new { Username = key, Count = values.Count() }) .OrderByDescending(b => b.Count) .Take(10) .ToDictionary(b => b.Username, b => b.Count); return(topTenByTag); } }
public IEnumerable <AcknowledgementDTO> GetByTagThisMonth(string tagTitle) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var tag = context.Tags .Where(t => t.Title == tagTitle) .FirstOrDefault(); var acknowledgements = tag.Acknowledgements .Where(a => a.DateCreated.Month == DateTime.Today.Month && a.DateCreated.Year == DateTime.Today.Year) .OrderByDescending(a => a.DateCreated) .ToList(); return(acknowledgementsAssembler.AssembleCollection(acknowledgements) .ToList()); } }
public IEnumerable <AcknowledgementDTO> GetByTag(string tagTitle) { using (var context = new AcknowledgementsTrackerContext()) { context.Database.Log = message => Debug.WriteLine(message); var tag = context.Tags .Where(t => t.Title == tagTitle) .FirstOrDefault(); if (tag != null) { return(acknowledgementsAssembler.AssembleCollection(tag.Acknowledgements) .ToList()); } else { return(new List <AcknowledgementDTO>()); } } }
// TODO: OPTIMIZE!!! public Dictionary <string, int> GetMostFrequentTagsThisMonth() { using (var context = new AcknowledgementsTrackerContext()) { var currentMonth = DateTime.Today.Month; var currentYear = DateTime.Today.Year; context.Database.Log = message => Debug.WriteLine(message); var result = context.Tags .OrderByDescending(t => t.Acknowledgements .Where(a => a.DateCreated.Month == currentMonth && a.DateCreated.Year == currentYear) .Count()) .Where(t => t.Acknowledgements.Where(a => a.DateCreated.Month == currentMonth && a.DateCreated.Year == currentYear).Count() > 0) .Take(10) .ToDictionary(t => t.Title, t => t.Acknowledgements .Where(a => a.DateCreated.Month == currentMonth && a.DateCreated.Year == currentYear) .Count()); return(result); } }
private List <Acknowledgement> GetByUsername(IEnumerable <string> usernames, string search, AcknowledgementsTrackerContext context) { List <Acknowledgement> acknowledgements = new List <Acknowledgement>(); foreach (var username in usernames) { acknowledgements.AddRange(context.Acknowledgements .Where(a => a.AuthorUsername == username || a.BeneficiaryUsername == username || a.Tags.Select(t => t.Title).Contains(search)) .OrderByDescending(a => a.DateCreated) .ToList()); } return(acknowledgements); }