public VmOrganizationOutput SaveOrganization(VmOrganizationInput model) { return(ExecuteSave ( unitOfWork => SaveOrganization(unitOfWork, model), (unitOfWork, entity) => GetOrganization(new VmOrganizationBasic() { Id = entity.Id }, unitOfWork) )); }
public VmOrganizationOutput SaveAndValidateOrganization(VmOrganizationInput model) { var result = ExecuteSaveAndValidate ( model.Id, unitOfWork => SaveOrganization(unitOfWork, model), (unitOfWork, entity) => GetOrganization(new VmOrganizationBasic() { Id = entity.Id }, unitOfWork) ); return(result); }
private IVmBase GetOrganizationData(VmOrganizationInput model) { VmOrganizationOutput result = null; switch (model.Action) { case ActionTypeEnum.Save: result = organizationService.SaveOrganization(model); break; case ActionTypeEnum.SaveAndValidate: result = organizationService.SaveAndValidateOrganization(model); break; default: result = organizationService.SaveOrganization(model); break; } organizationService.UnLockOrganization(result.Id.Value); return(result); }
public OrganizationVersioned SaveOrganization(IUnitOfWorkWritable unitOfWork, VmOrganizationInput model) { var organizationRep = unitOfWork.CreateRepository <IOrganizationVersionedRepository>(); var unificRootId = versionManager.GetUnificRootId <OrganizationVersioned>(unitOfWork, model.Id); if (unificRootId.HasValue && IsCyclicDependency(unitOfWork, unificRootId.Value, model.ParentId)) { throw new OrganizationCyclicDependencyException(); } if (!string.IsNullOrEmpty(model.OrganizationId) && organizationRep.All().Any(x => (x.UnificRootId != unificRootId) && (x.Oid == model.OrganizationId))) { throw new PtvArgumentException("", model.OrganizationId); } if (typesCache.Get <OrganizationType>(OrganizationTypeEnum.TT1.ToString()) == model.OrganizationType || typesCache.Get <OrganizationType>(OrganizationTypeEnum.TT2.ToString()) == model.OrganizationType) { if (organizationRep.All().Single(x => x.Id == model.Id).TypeId != model.OrganizationType) { throw new PtvServiceArgumentException("Organization type is not allowed!", new List <string> { typesCache.GetByValue <OrganizationType>(model.OrganizationType.Value) }); } } var entity = TranslationManagerToEntity.Translate <VmOrganizationInput, OrganizationVersioned>(model, unitOfWork); unitOfWork.Save(); return(entity); }