public async Task<PartialViewResult> Create(TimeSheetEntry newEntry)
        {
            //todo refactor with Fluent Validations 
            //https://fluentvalidation.codeplex.com/
            var tses = await timeSheetRepository.FindAsync(
                    tse => DbFunctions.TruncateTime(tse.EntryDate) == DbFunctions.TruncateTime(newEntry.EntryDate));
            tses.Add(newEntry);
            var totalHours = tses.Sum(tse => tse.Duration);
            if (totalHours > 24)
            {
                ModelState.AddModelError("Duration", "How can you work more than the hours in the day?!!");
            }

            if (ModelState.IsValid)
            {
                timeSheetRepository.Add(newEntry);
                await SaveChangesAsync();
                if (ModelState.IsValid)
                {
                    var timeSheetEntry = new TimeSheetEntry()
                    {
                        ProjectId = newEntry.ProjectId,
                        PersonId = newEntry.PersonId,
                        EntryDate = newEntry.EntryDate
                    };
                    ModelState.Clear();
                    return PartialView(timeSheetEntry);
                }
            }
            return PartialView(newEntry);
        }
 public TimeSheetEntry Add(TimeSheetEntry newEntry)
 {
     return uow.Set<TimeSheetEntry>().Add(newEntry);
 }