/// <summary> /// Метод за проверка дали може да бъде прието движение /// </summary> /// <param name="model"></param> /// <returns></returns> private bool IsAccept(CaseMovementVM model) { if (model.DateAccept != null) { return(false); } if (model.MovementTypeId == NomenclatureConstants.CaseMovementType.ToPerson) { if (model.ToUserId != userContext.UserId) { return(false); } } else { if (model.MovementTypeId == NomenclatureConstants.CaseMovementType.ToOtdel) { var lawUnits = commonService.LawUnit_ByCourtDate(userContext.CourtId, DateTime.Now, model.CourtOrganizationId ?? 0); if (!lawUnits.Any(x => x.Id == userContext.LawUnitId)) { return(false); } } } return(true); }
/// <summary> /// Създаване на Местоположение /// </summary> /// <param name="CaseId"></param> /// <param name="cmId"></param> /// <returns></returns> public IActionResult CreateMovement(int CaseId, int cmId) { if (!CheckAccess(service, SourceTypeSelectVM.CaseMovement, null, AuditConstants.Operations.Append, CaseId)) { return(Redirect_Denied()); } SetViewBag(CaseId); var model = new CaseMovementVM(); if (cmId > 0) { model = service.GetById_CaseMovementVM(cmId); } else { if (!service.IsAddNewMovement(CaseId)) { return(Content("Не може да извършите тази операция (или делото не е при вас или последното движение не е прието)")); } model.CaseId = CaseId; model.CourtId = userContext.CourtId; } return(PartialView(model)); }
public void StornoMovementTest() { using (serviceProvider.CreateScope()) { var service = serviceProvider.GetService <ICaseMovementService>(); var userContext = serviceProvider.GetService <IUserContext>(); var repo = serviceProvider.GetService <IRepository>(); var model = new CaseMovement() { Id = 1, CaseId = 1, CourtId = 1, MovementTypeId = 1, ToUserId = "1", CourtOrganizationId = 1, OtherInstitution = "Test", DateSend = DateTime.Now, AcceptUserId = null, DateAccept = null, Description = "Description", AcceptDescription = "AcceptDescription", UserId = userContext.UserId, DisableDescription = "", IsActive = true }; var saved = new CaseMovementVM() { Id = 1, CaseId = 1, CourtId = 1, MovementTypeId = 1, ToUserId = "1", CourtOrganizationId = 1, OtherInstitution = "Test", DateSend = DateTime.Now, AcceptUserId = null, DateAccept = null, Description = "Description", AcceptDescription = "AcceptDescription", UserId = userContext.UserId, DisableDescription = "Test", IsAccept = true }; repo.Add <CaseMovement>(model); service.StornoMovement(saved); var caseMovement = repo.AllReadonly <CaseMovement>().FirstOrDefault(); Assert.That(false, Is.EqualTo(caseMovement.IsActive)); Assert.That(saved.DisableDescription, Is.EqualTo(caseMovement.DisableDescription)); } }
/// <summary> /// Метод за създаване на местоположение /// </summary> /// <param name="model"></param> /// <returns></returns> public bool CreateMovement(CaseMovementVM model) { try { model.CourtOrganizationId = model.CourtOrganizationId.EmptyToNull(); if (model.Id > 0) { //Update var saved = repo.GetById <CaseMovement>(model.Id); saved.MovementTypeId = model.MovementTypeId; saved.ToUserId = model.ToUserId; saved.CourtOrganizationId = model.CourtOrganizationId; saved.OtherInstitution = model.OtherInstitution; //saved.DateSend = model.DateSend; saved.Description = model.Description; repo.Update(saved); repo.SaveChanges(); } else { //Insert var saved = new CaseMovement(); saved.CaseId = model.CaseId; saved.CourtId = model.CourtId; saved.MovementTypeId = model.MovementTypeId; if (saved.MovementTypeId == NomenclatureConstants.CaseMovementType.ToOutStructure) { saved.DateAccept = DateTime.Now; saved.AcceptUserId = userContext.UserId; } saved.ToUserId = model.ToUserId; saved.CourtOrganizationId = model.CourtOrganizationId; saved.OtherInstitution = model.OtherInstitution; saved.DateSend = DateTime.Now; saved.Description = model.Description; saved.IsActive = true; saved.DateWrt = DateTime.Now; saved.UserId = userContext.UserId; repo.Add <CaseMovement>(saved); repo.SaveChanges(); model.Id = saved.Id; } return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на движение по дело Id={ model.Id }"); return(false); } }
public JsonResult CreateMovement(CaseMovementVM model) { string validationError = IsValid(model); if (!string.IsNullOrEmpty(validationError)) { return(Json(new { result = false, message = validationError })); } var res = service.CreateMovement(model); SetAuditContext(service, SourceTypeSelectVM.CaseMovement, model.Id, true); return(Json(new { result = res })); }
/// <summary> /// Метод за проверка дали може да бъде редактирано приемане на движение /// </summary> /// <param name="model"></param> /// <returns></returns> private bool IsEditAccept(CaseMovementVM model) { if (model.DateAccept == null) { return(false); } if (model.AcceptUserId != userContext.UserId) { return(false); } return(true); }
/// <summary> /// Валидация преди запис на Местоположение /// </summary> /// <param name="model"></param> /// <returns></returns> private string IsValid(CaseMovementVM model) { if (model.MovementTypeId < 1) { return("Изберете тип насочване"); } switch (model.MovementTypeId) { case NomenclatureConstants.CaseMovementType.ToPerson: { if (string.IsNullOrEmpty(model.ToUserId)) { return("Изберете служител"); } } break; case NomenclatureConstants.CaseMovementType.ToOtdel: { if (model.CourtOrganizationId < 1) { return("Изберете Отдел/Звено/Дирекция"); } } break; case NomenclatureConstants.CaseMovementType.ToOutStructure: { if (string.IsNullOrEmpty(model.OtherInstitution)) { return("Въведете външно лице"); } } break; } var caseCase = service.GetById <Case>(model.CaseId); if (caseCase.CourtId != userContext.CourtId) { return($"Съда е променен на {userContext.CourtName}. Презаредете текущия екран."); } return(string.Empty); }
/// <summary> /// Редакция на приемане на местоположение /// </summary> /// <param name="model"></param> /// <returns></returns> public bool EditAcceptMovement(CaseMovementVM model) { try { model.CourtOrganizationId = model.CourtOrganizationId.EmptyToNull(); var saved = repo.GetById <CaseMovement>(model.Id); saved.AcceptDescription = model.AcceptDescription; repo.Update(saved); repo.SaveChanges(); return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при отразяване на изпълнение на движение по дело Id={ model.Id }"); return(false); } }
/// <summary> /// Метод за проверка дали може да бъде редактирано движение /// </summary> /// <param name="model"></param> /// <returns></returns> private bool IsEdit(CaseMovementVM model) { if (model.UserId != userContext.UserId) { return(false); } if (model.DateAccept != null) { return(false); } if (!model.IsActive) { return(false); } return(true); }
/// <summary> /// Сторно на местоположение /// </summary> /// <param name="model"></param> /// <returns></returns> public bool StornoMovement(CaseMovementVM model) { try { model.CourtOrganizationId = model.CourtOrganizationId.EmptyToNull(); var saved = repo.GetById <CaseMovement>(model.Id); saved.DisableDescription = model.DisableDescription; saved.IsActive = false; repo.Update(saved); repo.SaveChanges(); return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при сторниране на движение по дело Id={ model.Id }"); return(false); } }
public void CreateMovementTest() { using (serviceProvider.CreateScope()) { var service = serviceProvider.GetService <ICaseMovementService>(); var userContext = serviceProvider.GetService <IUserContext>(); var repo = serviceProvider.GetService <IRepository>(); var saved = new CaseMovementVM() { CaseId = 1, CourtId = 1, MovementTypeId = 1, ToUserId = "1", CourtOrganizationId = 1, OtherInstitution = "Test", DateSend = DateTime.Now, AcceptUserId = null, DateAccept = null, Description = "Description", AcceptDescription = "AcceptDescription", UserId = userContext.UserId, }; service.CreateMovement(saved); var caseMovement = repo.AllReadonly <CaseMovement>().FirstOrDefault(); Assert.That(saved.CaseId, Is.EqualTo(caseMovement.CaseId)); Assert.That(saved.CourtId, Is.EqualTo(caseMovement.CourtId)); Assert.That(saved.MovementTypeId, Is.EqualTo(caseMovement.MovementTypeId)); Assert.That(saved.ToUserId, Is.EqualTo(caseMovement.ToUserId)); Assert.That(saved.CourtOrganizationId, Is.EqualTo(caseMovement.CourtOrganizationId)); Assert.That(saved.OtherInstitution, Is.EqualTo(caseMovement.OtherInstitution)); Assert.That(saved.Description, Is.EqualTo(caseMovement.Description)); Assert.That(saved.UserId, Is.EqualTo(caseMovement.UserId)); } }
public JsonResult EditAcceptMovement(CaseMovementVM model) { SetAuditContext(service, SourceTypeSelectVM.CaseMovement, model.Id, false); return(Json(new { result = service.EditAcceptMovement(model) })); }
public JsonResult StornoMovement(CaseMovementVM model) { CheckAccess(service, SourceTypeSelectVM.CaseMovement, model.Id, AuditConstants.Operations.Delete); return(Json(new { result = service.StornoMovement(model) })); }