public ActionResult CreateExtraTimeRequest(CreateExtraTimeRequest NewExtraTimeRequest) { if (ModelState.IsValid) { Task task = db.Tasks.Find(NewExtraTimeRequest.TaskId); if (task == null) { return(Json(new { status = "error", message = "Task not found to place extra time requets." }, JsonRequestBehavior.AllowGet)); } ExtraTimeRequest request = new ExtraTimeRequest { TaskId = task.TaskId, Duration = Convert.ToInt32(NewExtraTimeRequest.Duration), RequestStatusId = 1, Message = NewExtraTimeRequest.Message, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now }; db.ExtraTimeRequests.Add(request); db.SaveChanges(); Notification notification = new Notification { TypeId = 1, DataId = request.ExtraTimeRequestId, IsRead = false, NotificationToAppUserId = task.AssignedByAppUserId, Message = string.Format("You have requested for extra time for {0} by {1} {2}", task.Title, task.AssignedTo.FirstName, task.AssignedTo.LastName), CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now }; db.Notifications.Add(notification); db.SaveChanges(); return(Json(new { status = "ok", data = request, message = "Extra time request submited successfully" }, JsonRequestBehavior.AllowGet)); } return(Json(new { status = "error", message = "Data validation faild." }, JsonRequestBehavior.AllowGet)); }
public ActionResult AcceptExtraTimeRequest(int?ExtraTimeRequestId) { if (ModelState.IsValid) { ExtraTimeRequest request = db.ExtraTimeRequests.Find(ExtraTimeRequestId); if (request == null) { return(Json(new { status = "error", message = "Request not found." }, JsonRequestBehavior.AllowGet)); } Task task = db.Tasks.Find(request.TaskId); request.RequestStatusId = 2; db.Entry(request).State = EntityState.Modified; db.SaveChanges(); task.Duration += request.Duration; task.EndDateTime = task.EndDateTime.AddMinutes(request.Duration); db.Entry(task).State = EntityState.Modified; db.SaveChanges(); Notification notification = new Notification { TypeId = 2, DataId = request.TaskId, IsRead = false, NotificationToAppUserId = task.AssignedToAppUserId, Message = string.Format("Your request is accepted for extra time for {0}", task.Title), CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now }; db.Notifications.Add(notification); db.SaveChanges(); return(Json(new { status = "ok", data = request, message = "Your request is accepted for extra time." }, JsonRequestBehavior.AllowGet)); } return(Json(new { status = "error", message = "Data validation faild." }, JsonRequestBehavior.AllowGet)); }