public DataResponse SaveDueDate(DateTime TargetDate, int TaskId, int currentUserID) { var response = new DataResponse(); try { base.DBInit(); var model = DBEntity.Tasks.FirstOrDefault(a => a.Id == TaskId); if (model != null) { model.TargetDate = TargetDate; model.UpdatedBy = currentUserID; model.UpdatedOn = DateTime.UtcNow; if (base.DBSaveUpdate(model) == 1) { var objTask = new Database.Task { Id = model.Id, RequestedBy = model.RequestedBy, Subject = model.Subject, TaskDescription = model.TaskDescription, BusinessId = model.BusinessId, TaskRequestTypeId = model.TaskRequestTypeId, ReferenceNumber = model.ReferenceNumber, PracticeId = model.PracticeId, PriorityTypeId = model.PriorityTypeId, TargetDate = model.TargetDate, ClosingDate = model.ClosingDate, IsActive = model.IsActive, Status = model.Status, TaskUsers = model.TaskUsers, TaskUserAlerts = model.TaskUserAlerts, User = model.User, CreatedOn = model.UpdatedOn.Value, CreatedBy = model.UpdatedBy.Value }; SaveLog(objTask); response.Status = DataResponseStatus.OK; } else { response.Status = DataResponseStatus.NotModified; } } else { response.Status = DataResponseStatus.NotModified; } } catch (Exception ex) { ex.Log(); } finally { base.DBClose(); } return(response); }
public bool SaveLog(Database.Task taskModel, string action = "Updated") { base.DBInit(); if (taskModel != null) { DateTime?AlertDate = null; if (taskModel.TaskUserAlerts != null && taskModel.TaskUserAlerts.Count() > 0) { AlertDate = taskModel.TaskUserAlerts.FirstOrDefault().AlertDate; } var logModel = new Database.TaskLog { AlertDate = AlertDate, TaskId = taskModel.Id, RequestedBy = taskModel.RequestedBy, Subject = taskModel.Subject, TaskDescription = taskModel.TaskDescription, BusinessId = taskModel.BusinessId, TaskRequestTypeId = taskModel.TaskRequestTypeId, ReferenceNumber = taskModel.ReferenceNumber, PracticeId = taskModel.PracticeId, PriorityTypeId = taskModel.PriorityTypeId, TargetDate = taskModel.TargetDate, ClosingDate = taskModel.ClosingDate, IsActive = taskModel.IsActive, Status = taskModel.Status, Action = action, CreatedOn = taskModel.CreatedOn, CreatedBy = taskModel.CreatedBy }; if (taskModel.TaskUsers != null) { foreach (var taskUser in taskModel.TaskUsers) { var objUser = DBEntity.Users.FirstOrDefault(a => a.Id == taskUser.UserId); if (taskUser.IsWatcher.HasValue && taskUser.IsWatcher.Value) { logModel.Watchers = string.Format("{0}{1}", string.IsNullOrEmpty(logModel.Watchers) ? string.Empty : logModel.Watchers + ",", string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", objUser.FirstName, objUser.LastName, objUser.Id)); } else { logModel.AssignedTo = string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", objUser.FirstName, objUser.LastName, objUser.Id); } } } logModel.Watchers = string.Format("[{0}]", logModel.Watchers); logModel.AssignedTo = string.Format("[{0}]", logModel.AssignedTo); return(base.DBSave(logModel) > 0); } return(false); }
public DataResponse ToggleStatus(int TaskId, int currentUserID, bool hasDeletePermission) { var response = new DataResponse <bool?>(); try { base.DBInit(); var model = DBEntity.Tasks.FirstOrDefault(a => a.Id == TaskId); model.UpdatedBy = currentUserID; model.UpdatedOn = DateTime.UtcNow; if (model != null && (hasDeletePermission || currentUserID == model.User.Id)) { model.IsActive = (model.IsActive == false) ? true : false; } if (base.DBSaveUpdate(model) == 1) { var objTask = new Database.Task { Id = model.Id, RequestedBy = model.RequestedBy, Subject = model.Subject, TaskDescription = model.TaskDescription, BusinessId = model.BusinessId, TaskRequestTypeId = model.TaskRequestTypeId, ReferenceNumber = model.ReferenceNumber, PracticeId = model.PracticeId, PriorityTypeId = model.PriorityTypeId, TargetDate = model.TargetDate, ClosingDate = model.ClosingDate, IsActive = model.IsActive, Status = model.Status, TaskUsers = model.TaskUsers, TaskUserAlerts = model.TaskUserAlerts, User = model.User, CreatedOn = model.UpdatedOn.Value, CreatedBy = model.UpdatedBy.Value }; SaveLog(objTask); response.Model = model.IsActive; } } catch (Exception ex) { ex.Log(); } finally { base.DBClose(); } return(response); }
public DataResponse SetStatus(int Taskid, int StatusId, int currentUserID, string updatedByName) { var response = new DataResponse <int?>(); try { base.DBInit(); var model = DBEntity.Tasks.FirstOrDefault(a => a.Id == Taskid); model.UpdatedBy = currentUserID; model.UpdatedOn = DateTime.UtcNow; model.Status = StatusId; if (base.DBSaveUpdate(model) > 0) { var objTask = new Database.Task { Id = model.Id, RequestedBy = model.RequestedBy, Subject = model.Subject, TaskDescription = model.TaskDescription, BusinessId = model.BusinessId, TaskRequestTypeId = model.TaskRequestTypeId, ReferenceNumber = model.ReferenceNumber, PracticeId = model.PracticeId, PriorityTypeId = model.PriorityTypeId, TargetDate = model.TargetDate, ClosingDate = model.ClosingDate, IsActive = model.IsActive, Status = model.Status, TaskUsers = model.TaskUsers, TaskUserAlerts = model.TaskUserAlerts, User = model.User, CreatedOn = model.UpdatedOn.Value, CreatedBy = model.UpdatedBy.Value }; SaveLog(objTask); response.Model = model.Status; #region Save Notification Data var notificationlist = new List <EntityNotification>(); notificationlist = model.TaskUsers.Select(a => new EntityNotification { UserId = a.UserId, Message = NotificationMessages.TaskStatusUpdateUserNotification }).ToList(); notificationlist.Add(new EntityNotification { UserId = model.CreatedBy, Message = NotificationMessages.TaskStatusUpdateUserNotification }); new RepositoryNotification().Save(notificationlist, currentUserID, model.Id, (int)NotificationTargetType.Task, (int)NotificationType.Normal, model.CreatedBy, updatedByName, model.CreatedOn, model.Subject); #endregion } } catch (Exception ex) { ex.Log(); } finally { base.DBClose(); } return(response); }
public DataResponse Update(EntityTask entity) { var response = new DataResponse <EntityTask>(); try { base.DBInit(); entity.UpdatedOn = DateTime.UtcNow; #region Prepare model var model = DBEntity.Tasks.FirstOrDefault(a => a.Id == entity.TaskId); model.RequestedBy = entity.CurrentUserId; model.Subject = entity.Subject; model.PracticeId = entity.PracticeId; model.TaskDescription = entity.TaskDescription; model.PriorityTypeId = entity.PriorityTypeId; model.TaskRequestTypeId = entity.TaskRequestTypeId; model.TargetDate = entity.TargetDate; model.ClosingDate = entity.ClosingDate; model.UpdatedOn = entity.UpdatedOn; model.UpdatedBy = entity.UpdatedBy; List <EntityNotification> notificationlist = new List <EntityNotification>(); if (model.Status != entity.StatusId) { model.Status = entity.StatusId; } // notificationlist = model.TaskUsers.Where(a => a.UserId != entity.CurrentUserId).Select(a => new EntityNotification // { // UserId = a.UserId, // Message = NotificationMessages.TaskStatusUpdateUserNotification // }).ToList(); // if (model.CreatedBy != entity.CurrentUserId) // notificationlist.Add(new EntityNotification // { // UserId = model.CreatedBy, // Message = NotificationMessages.TaskStatusUpdateUserNotification // }); //} if (entity.AlertDate.HasValue) { var modelItem = model.TaskUserAlerts.FirstOrDefault(a => a.UserId == entity.CurrentUserId); if (modelItem != null) { DBEntity.Entry(modelItem).State = EntityState.Modified; modelItem.AlertDate = entity.AlertDate.Value; modelItem.Message = entity.AlertMessage; modelItem.UpdatedOn = entity.UpdatedOn; modelItem.UpdatedBy = entity.UpdatedBy; } else { var taskUserAlerts = new Database.TaskUserAlert { TaskId = model.Id, UserId = entity.CurrentUserId, AlertDate = entity.AlertDate.Value, Message = entity.AlertMessage, CreatedOn = entity.UpdatedOn.Value, CreatedBy = entity.UpdatedBy.Value, }; model.TaskUserAlerts.Add(taskUserAlerts); } } //delete all previous assignments DBEntity.TaskUsers.Where(a => a.TaskId == model.Id).Delete(); if (entity.AssignedTo > 0) { model.TaskUsers.Add(new Database.TaskUser { UserId = entity.AssignedTo, IsWatcher = false, CreatedOn = entity.UpdatedOn.Value, CreatedBy = entity.UpdatedBy.Value }); // if (entity.CurrentUserId != entity.AssignedTo) notificationlist.Add(new EntityNotification { UserId = entity.AssignedTo, Message = NotificationMessages.TaskUpdateUserNotification }); } if (entity.Watchers != null) { foreach (var user in entity.Watchers) { model.TaskUsers.Add(new Database.TaskUser { UserId = int.Parse(user), IsWatcher = true, CreatedOn = entity.UpdatedOn.Value, CreatedBy = entity.UpdatedBy.Value }); notificationlist.Add(new EntityNotification { UserId = int.Parse(user), Message = NotificationMessages.TaskUpdateUserNotification }); } } notificationlist.Add(new EntityNotification { UserId = model.CreatedBy, Message = NotificationMessages.TaskUpdateUserNotification }); #endregion #region Delete removed files from db on update IEnumerable <int> incomingFileLists = null; IEnumerable <Database.TaskAttachment> existingFiles = null; if (entity.FilesList != null && entity.FilesList.Count() > 0) { incomingFileLists = entity.FilesList.Select(a => a.Id); } if (incomingFileLists != null && incomingFileLists.Count() > 0) { existingFiles = model.TaskAttachments.Where(a => !incomingFileLists.Contains(a.Id)); } else { existingFiles = model.TaskAttachments; } if (existingFiles.Count() > 0) { foreach (var item in existingFiles) { item.IsActive = false; } } #endregion if (base.DBSaveUpdate(model) > 0) { #region Save Notification Data new RepositoryNotification().Save(notificationlist, entity.CurrentUserId, model.Id, (int)NotificationTargetType.Task, (int)NotificationType.Normal, model.UpdatedBy.Value, entity.CreatedByName, model.UpdatedOn.Value, model.Subject); #endregion #region Save to Log var objTask = new Database.Task { Id = model.Id, RequestedBy = entity.CurrentUserId, Subject = model.Subject, TaskDescription = model.TaskDescription, BusinessId = model.BusinessId, TaskRequestTypeId = model.TaskRequestTypeId, ReferenceNumber = model.ReferenceNumber, PracticeId = model.PracticeId, PriorityTypeId = model.PriorityTypeId, TargetDate = model.TargetDate, ClosingDate = model.ClosingDate, IsActive = model.IsActive, Status = model.Status, TaskUsers = model.TaskUsers, TaskUserAlerts = model.TaskUserAlerts, User = model.User, CreatedOn = model.UpdatedOn.Value, CreatedBy = model.UpdatedBy.Value }; if (!SaveLog(objTask)) { new Exception("Task log failed! Task:" + entity.TaskId).Log(); } #endregion //return GetTaskById(model.Id, entity.CurrentUserId, entity.CurrentBusinessId); return(new DataResponse { Status = DataResponseStatus.OK, Id = model.Id }); } else { response.CreateResponse(DataResponseStatus.InternalServerError); } } catch (Exception ex) { ex.Log(); } finally { base.DBClose(); } return(response); }
public DataResponse <EntityTask> Insert(EntityTask entity) { var response = new DataResponse <EntityTask>(); try { base.DBInit(); var model = new Database.Task { RequestedBy = entity.CurrentUserId, Subject = entity.Subject, TaskDescription = entity.TaskDescription, BusinessId = entity.CurrentBusinessId, TaskRequestTypeId = entity.TaskRequestTypeId, PracticeId = entity.PracticeId, PriorityTypeId = entity.PriorityTypeId, TargetDate = entity.TargetDate, ClosingDate = entity.ClosingDate, IsActive = true, Status = (int)TaskStatuses.New, CreatedOn = entity.CreatedOn, CreatedBy = entity.CreatedBy, UpdatedOn = entity.UpdatedOn, UpdatedBy = entity.UpdatedBy }; if (entity.AlertDate.HasValue) { var taskUserAlerts = new List <Database.TaskUserAlert> { new Database.TaskUserAlert { UserId = entity.CurrentUserId, AlertDate = entity.AlertDate.Value, Message = entity.AlertMessage, CreatedOn = entity.CreatedOn, CreatedBy = entity.CreatedBy, } }; model.TaskUserAlerts = taskUserAlerts; } var notificationlist = new List <EntityNotification>(); if (entity.AssignedTo > 0) { model.TaskUsers.Add(new Database.TaskUser { UserId = entity.AssignedTo, IsWatcher = false, CreatedOn = entity.CreatedOn, CreatedBy = entity.CreatedBy }); notificationlist.Add(new EntityNotification { UserId = entity.AssignedTo, Message = NotificationMessages.TaskUserNotification }); } if (entity.Watchers != null) { foreach (var user in entity.Watchers) { model.TaskUsers.Add(new Database.TaskUser { UserId = int.Parse(user), IsWatcher = true, CreatedOn = entity.CreatedOn, CreatedBy = entity.CreatedBy }); notificationlist.Add(new EntityNotification { UserId = int.Parse(user), Message = NotificationMessages.TaskUserNotification }); } } if (base.DBSave(model) > 0) { #region Save Notification Data new RepositoryNotification().Save(notificationlist, entity.CurrentUserId, model.Id, (int)NotificationTargetType.Task, (int)NotificationType.Normal, model.CreatedBy, entity.CreatedByName, model.CreatedOn, model.Subject); #endregion #region Save to Log var objTask = new Database.Task { Id = model.Id, RequestedBy = model.RequestedBy, Subject = model.Subject, TaskDescription = model.TaskDescription, BusinessId = model.BusinessId, TaskRequestTypeId = model.TaskRequestTypeId, ReferenceNumber = model.ReferenceNumber, PracticeId = model.PracticeId, PriorityTypeId = model.PriorityTypeId, TargetDate = model.TargetDate, ClosingDate = model.ClosingDate, IsActive = model.IsActive, Status = model.Status, TaskUsers = model.TaskUsers, TaskUserAlerts = model.TaskUserAlerts, User = model.User, CreatedOn = model.CreatedOn, CreatedBy = model.CreatedBy }; if (!SaveLog(objTask, "Created")) { new Exception("Task log failed! Task:" + entity.TaskId).Log(); } #endregion return(GetTaskById(model.Id, entity.CurrentUserId, entity.CurrentBusinessId)); } else { response.CreateResponse(DataResponseStatus.InternalServerError); } } catch (Exception ex) { ex.Log(); } finally { base.DBClose(); } return(response); }