Ejemplo n.º 1
0
 public VmOrganizationOutput SaveOrganization(VmOrganizationInput model)
 {
     return(ExecuteSave
            (
                unitOfWork => SaveOrganization(unitOfWork, model),
                (unitOfWork, entity) => GetOrganization(new VmOrganizationBasic()
     {
         Id = entity.Id
     }, unitOfWork)
            ));
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }