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)); } }
public Response <DocumentConfirmModel> Create(DocumentConfirmCreateModel createModel) { try { using (var unitOfWork = new UnitOfWork()) { DocumentConfirm entity = new DocumentConfirm(); Ultis.TransferValues(entity, createModel); entity.CreatedOnDate = DateTime.Now; entity.UpdatedOnDate = DateTime.Now; var last = unitOfWork.GetRepository <DocumentConfirm>().GetAll().OrderByDescending(u => u.ConfirmId).FirstOrDefault(); if (last != null) { entity.ConfirmId = last.ConfirmId + 1; } else { entity.ConfirmId = 1; } unitOfWork.GetRepository <DocumentConfirm>().Add(entity); TaskMessage message = new TaskMessage { CreatedByUserId = createModel.CreatedByUserId, Deadline = createModel.FinishedOnDate, TaskType = (int)TaskType.CONFIRM, Title = createModel.Name, UserId = createModel.UserId, CreatedOnDate = DateTime.Now, RelatedId = entity.ConfirmId, ModuleId = createModel.ModuleId }; unitOfWork.GetRepository <TaskMessage>().Add(message); // var tmp = unitOfWork.GetRepository <DocumentProcess>().Get(d => d.Id == createModel.ProcessId && d.TaskType == (int)TaskType.CONFIRM); if (tmp == null) { return(new Response <DocumentConfirmModel>(0, "Bạn chưa tạo tiến trình xử lý cho tài liệu này", null)); } tmp.Status = (int)DocumentProcessStatus.INPROCESS; tmp.RelatedId = entity.ConfirmId; unitOfWork.GetRepository <DocumentProcess>().Update(tmp); // 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)); } }