Пример #1
0
        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));
        }
Пример #2
0
        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));
        }