public Response <DocumentConfirmModel> ReCreate(int ConfirmId, RecreateDocumentConfirmModel createModel)
 {
     try
     {
         using (var unitOfWork = new UnitOfWork())
         {
             DocumentConfirm entity = unitOfWork.GetRepository <DocumentConfirm>().GetById(ConfirmId);
             if (entity == null)
             {
                 return(new Response <DocumentConfirmModel>(0, "Id is not valid", null));
             }
             if (entity.CreatedByUserId != createModel.UserId)
             {
                 return(new Response <DocumentConfirmModel>(0, "Bạn không phải là tác giả", null));
             }
             //change message
             entity.Description    = createModel.Message;
             entity.FinishedOnDate = DateTime.Now.AddDays(createModel.ExtraDays);
             entity.UpdatedOnDate  = DateTime.Now;
             unitOfWork.GetRepository <DocumentConfirm>().Update(entity);
             //delete responses
             foreach (var item in unitOfWork.GetRepository <QH_DocumentConfirm_User>().GetMany(d => d.DocumentConfirmId == ConfirmId))
             {
                 unitOfWork.GetRepository <QH_DocumentConfirm_User>().Delete(item);
             }
             //update message
             var exsisted_mess = unitOfWork.GetRepository <TaskMessage>().GetMany(t => t.ModuleId == createModel.ModuleId && t.TaskType == (int)TaskType.CONFIRM && t.RelatedId == ConfirmId);
             foreach (var item in exsisted_mess)
             {
                 unitOfWork.GetRepository <TaskMessage>().Delete(item);
             }
             //
             TaskMessage message = new TaskMessage
             {
                 CreatedByUserId = entity.CreatedByUserId,
                 Deadline        = entity.FinishedOnDate,
                 TaskType        = (int)TaskType.CONFIRM,
                 Title           = "Phê duyệt lại: " + entity.Name,
                 UserId          = entity.UserId,
                 CreatedOnDate   = DateTime.Now,
                 RelatedId       = entity.ConfirmId,
                 ModuleId        = entity.ModuleId,
                 Status          = 0,
                 IsMyTask        = false
             };
             unitOfWork.GetRepository <TaskMessage>().Add(message);
             //
             if (unitOfWork.Save() >= 1)
             {
                 return(GetById(entity.ConfirmId));
             }
             return(new Response <DocumentConfirmModel>(0, "Saving data not successful!", null));
         }
     }
     catch (Exception ex)
     {
         return(new Response <DocumentConfirmModel>(-1, ex.ToString(), null));
     }
 }
Esempio n. 2
0
        public IHttpActionResult Resend(int Id, RecreateDocumentConfirmModel recreateModel)
        {
            string UserId = Request.Headers.GetValues("UserId").FirstOrDefault();

            recreateModel.UserId = Convert.ToInt32(UserId);
            var result = handler.ReCreate(Id, recreateModel);

            return(Ok(result));
        }