public IHttpActionResult Resend(int Id, RecreateDocumentPerformModel recreateModel) { string UserId = Request.Headers.GetValues("UserId").FirstOrDefault(); recreateModel.UserId = Convert.ToInt32(UserId); var result = handler.ReCreate(Id, recreateModel); return(Ok(result)); }
public Response <DocumentPerformModel> ReCreate(int PerformId, RecreateDocumentPerformModel createModel) { try { using (var unitOfWork = new UnitOfWork()) { DocumentPerform entity = unitOfWork.GetRepository <DocumentPerform>().GetById(PerformId); if (entity == null) { return(new Response <DocumentPerformModel>(0, "Id is not valid", null)); } if (entity.IsFinished == 1) { return(new Response <DocumentPerformModel>(0, "thống nhất đã kết thúc rồi!", null)); } if (entity.CreatedByUserId != createModel.UserId) { return(new Response <DocumentPerformModel>(0, "Bạn không phải là tác giả", null)); } //change message entity.Status = 2; entity.Description = createModel.Message; entity.FinishedOnDate = DateTime.Now.AddDays(createModel.ExtraDays); entity.UpdatedOnDate = DateTime.Now; unitOfWork.GetRepository <DocumentPerform>().Update(entity); //delete responses foreach (var item in unitOfWork.GetRepository <QH_DocumentPerform_User>().GetMany(d => d.DocumentPerformId == PerformId)) { unitOfWork.GetRepository <QH_DocumentPerform_User>().Delete(item); } //update message var exsisted_mess = unitOfWork.GetRepository <TaskMessage>().GetMany(t => t.ModuleId == createModel.ModuleId && t.TaskType == (int)TaskType.PERFORM && t.RelatedId == PerformId); foreach (var item in exsisted_mess) { unitOfWork.GetRepository <TaskMessage>().Delete(item); } // foreach (var item in entity.UserList.Split(',')) { int user_id = Convert.ToInt32(item.Trim()); TaskMessage message = new TaskMessage { CreatedByUserId = entity.CreatedByUserId, Deadline = entity.FinishedOnDate, TaskType = (int)TaskType.PERFORM, Title = "Thống nhất lại: " + entity.Name, UserId = user_id, CreatedOnDate = DateTime.Now, RelatedId = entity.PerformId, ModuleId = entity.ModuleId }; unitOfWork.GetRepository <TaskMessage>().Add(message); } // if (unitOfWork.Save() >= 1) { return(GetById(entity.PerformId)); } return(new Response <DocumentPerformModel>(0, "Saving data not successful!", null)); } } catch (Exception ex) { return(new Response <DocumentPerformModel>(-1, ex.ToString(), null)); } }