Пример #1
0
 private void Validate(ResourceViewModel resourceViewModel, ResourceActFilesModel files)
 {
     if (resourceViewModel.Resource.ResourceRights == null ||
         resourceViewModel.Resource.ResourceRights.Count < 1)
     {
         ModelState.AddModelError(string.Empty,
                                  @"Необходимо задать по меньшей мере одно право для ресурса");
     }
     ValidateFiles(files.ResourceAuthorityActs, "Files.ResourceAuthorityActs[{0}]");
     ValidateFiles(files.ResourceUsingActs, "Files.ResourceUsingActs[{0}]");
     ValidateFiles(files.ResourceOperatorActs, "Files.ResourceOperatorActs[{0}]");
     if (files.ResourceOperatorPersons != null)
     {
         for (var i = 0; i < files.ResourceOperatorPersons.Count; i++)
         {
             ValidateFiles(files.ResourceOperatorPersons[i].Acts,
                           "Files.ResourceOperatorPersons[" + i + "].Acts[{0}]");
         }
     }
     if (files.ResourceOwnerPersons != null)
     {
         for (var i = 0; i < files.ResourceOwnerPersons.Count; i++)
         {
             ValidateFiles(files.ResourceOwnerPersons[i].Acts,
                           "Files.ResourceOwnerPersons[" + i + "].Acts[{0}]");
         }
     }
 }
Пример #2
0
 public ActionResult Update(ResourceViewModel resourceViewModel, ResourceActFilesModel files,
                            IList <RequestPermissionsDepartmentsModel> requestPermissionsDepartments)
 {
     if (resourceViewModel == null || resourceViewModel.Resource == null)
     {
         return(RedirectToAction("BadRequestError", "Home",
                                 new { message = "Не передана ссылка на ресурс" }));
     }
     if (!_securityService.CanUpdate(resourceViewModel.Resource))
     {
         return(RedirectToAction("ForbiddenError", "Home"));
     }
     Validate(resourceViewModel, files);
     if (!ModelState.IsValid)
     {
         ViewData["SecurityService"] = _securityService;
         return(View(_resourceService.GetResourceViewModelBy(resourceViewModel.Resource, requestPermissionsDepartments)));
     }
     try
     {
         _resourceService.UpdateResource(resourceViewModel.Resource, files, requestPermissionsDepartments);
         _resourceService.SaveChanges();
     }
     catch (DbUpdateException e)
     {
         return(RedirectToAction("ConflictError", "Home",
                                 new { message = ExceptionHelper.RollToInnerException(e).Message }));
     }
     catch (RetryLimitExceededException e)
     {
         return(RedirectToAction("ServerError", "Home",
                                 new { message = ExceptionHelper.RollToInnerException(e).Message }));
     }
     catch (IOException e)
     {
         return(RedirectToAction("ServerError", "Home",
                                 new { message = ExceptionHelper.RollToInnerException(e).Message }));
     }
     return(Request["returnUri"] != null ? (ActionResult)Redirect(Request["returnUri"]) :
            RedirectToAction("Index"));
 }
Пример #3
0
 private static void PreInsertAndBindFiles(Resource resource, ResourceActFilesModel files)
 {
     if (resource.ResourceAuthorityActs != null)
     {
         for (var i = 0; i < resource.ResourceAuthorityActs.Count; i++)
         {
             var act = resource.ResourceAuthorityActs[i];
             if (act.IdFile != null)
             {
                 continue;
             }
             if (files.ResourceAuthorityActs.Count <= i)
             {
                 break;
             }
             act.File = CreateActFile(files.ResourceAuthorityActs[i]);
         }
     }
     if (resource.ResourceOperatorActs != null)
     {
         for (var i = 0; i < resource.ResourceOperatorActs.Count; i++)
         {
             var act = resource.ResourceOperatorActs[i];
             if (act.IdFile != null)
             {
                 continue;
             }
             if (files.ResourceOperatorActs.Count <= i)
             {
                 break;
             }
             act.File = CreateActFile(files.ResourceOperatorActs[i]);
         }
     }
     if (resource.ResourceUsingActs != null)
     {
         for (var i = 0; i < resource.ResourceUsingActs.Count; i++)
         {
             var act = resource.ResourceUsingActs[i];
             if (act.IdFile != null)
             {
                 continue;
             }
             if (files.ResourceUsingActs.Count <= i)
             {
                 break;
             }
             act.File = CreateActFile(files.ResourceUsingActs[i]);
         }
     }
     if (resource.ResourceOwnerPersons != null)
     {
         for (var i = 0; i < resource.ResourceOwnerPersons.Count; i++)
         {
             var person = resource.ResourceOwnerPersons[i];
             if (files.ResourceOwnerPersons[i] == null)
             {
                 continue;
             }
             var filePerson = files.ResourceOwnerPersons[i];
             if (person.Acts == null)
             {
                 continue;
             }
             for (var j = 0; j < person.Acts.Count; j++)
             {
                 var act = person.Acts[j];
                 if (act.IdFile != null)
                 {
                     continue;
                 }
                 if (filePerson.Acts.Count <= j)
                 {
                     break;
                 }
                 act.File = CreateActFile(filePerson.Acts[j]);
             }
         }
     }
     if (resource.ResourceOperatorPersons != null)
     {
         for (var i = 0; i < resource.ResourceOperatorPersons.Count; i++)
         {
             var person = resource.ResourceOperatorPersons[i];
             if (files.ResourceOperatorPersons[i] == null)
             {
                 continue;
             }
             var filePerson = files.ResourceOperatorPersons[i];
             if (person.Acts == null)
             {
                 continue;
             }
             for (var j = 0; j < person.Acts.Count; j++)
             {
                 var act = person.Acts[j];
                 if (act.IdFile != null)
                 {
                     continue;
                 }
                 if (filePerson.Acts.Count <= j)
                 {
                     break;
                 }
                 act.File = CreateActFile(filePerson.Acts[j]);
             }
         }
     }
 }
Пример #4
0
 public Resource InsertResource(Resource resource, ResourceActFilesModel files, IList <RequestPermissionsDepartmentsModel> requestPermissionsDepartments)
 {
     PreInsertAndBindFiles(resource, files);
     UpdateRequestPermissionsDepartments(resource, requestPermissionsDepartments);
     return(_resourceRepository.InsertResource(resource));
 }