private DateTime GetSLAAddOffset(WorkScheduleTable scheduleTable, DateTime CreatedDate, double SLAMinutes) { if ((scheduleTable.WorkEndTime - CreatedDate.TimeOfDay).TotalMinutes >= SLAMinutes) { return(CreatedDate.AddMinutes(SLAMinutes)); } else { SLAMinutes = SLAMinutes - (scheduleTable.WorkEndTime - CreatedDate.TimeOfDay).TotalMinutes; CreatedDate = GetWorkStartDate(CreatedDate.Date.AddDays(1), scheduleTable); return(GetSLAAddOffset(scheduleTable, CreatedDate, SLAMinutes)); } }
public void Save(WorkScheduleView viewTable) { if (viewTable.Id == null) { var domainTable = new WorkScheduleTable(); Mapper.Map(viewTable, domainTable); SaveDomain(domainTable); } else { var domainTable = Find(viewTable.Id); Mapper.Map(viewTable, domainTable); SaveDomain(domainTable); } }
private DateTime GetWorkStartDate(DateTime createdDate, WorkScheduleTable scheduleTable) { DateTime tempCreatedDate = createdDate; tempCreatedDate = FindWorkDay(scheduleTable.Id, tempCreatedDate); if (tempCreatedDate.Hour > scheduleTable.WorkEndTime.Hours) { tempCreatedDate = FindWorkDay(scheduleTable.Id, tempCreatedDate); tempCreatedDate = tempCreatedDate.Date + scheduleTable.WorkStartTime; } else if (tempCreatedDate.Hour < scheduleTable.WorkStartTime.Hours) { tempCreatedDate = tempCreatedDate.Date + scheduleTable.WorkStartTime; } return(tempCreatedDate); }
public DateTime?GetSLAPerformDate(Guid DocumentId, DateTime CreatedDate, double SLAOffset) { DocumentTable documentTable = Find(DocumentId); if (documentTable != null && documentTable.ProcessTable != null) { WorkScheduleTable scheduleTable = _WorkScheduleService.Find(documentTable.ProcessTable.WorkScheduleTableId); if (scheduleTable != null) { CreatedDate = GetWorkStartDate(CreatedDate, scheduleTable); double SLAMinutes = (SLAOffset * 60); return(GetSLAAddOffset(scheduleTable, CreatedDate, SLAMinutes)); } } return(null); }
public void SaveDomain(WorkScheduleTable domainTable, string currentUserName = "") { string localUserName = getCurrentUserName(currentUserName); ApplicationUser user = _AccountService.FirstOrDefault(x => x.UserName == localUserName); if (domainTable.Id == Guid.Empty) { domainTable.CreatedDate = DateTime.UtcNow; domainTable.ModifiedDate = domainTable.CreatedDate; domainTable.ApplicationUserCreatedId = user.Id; domainTable.ApplicationUserModifiedId = user.Id; repo.Add(domainTable); } else { domainTable.ModifiedDate = DateTime.UtcNow; domainTable.ApplicationUserModifiedId = user.Id; repo.Update(domainTable); } _uow.Save(); }