Exemple #1
0
        /// <summary>
        /// Deserializza una struttura JSON di tipo UDSWorkflowModel recuperata da Workflow (property).
        /// </summary>
        /// <returns>oggetto UDSDto</returns>
        public UDSDto ReadUDSWorkflowJson(string udsWorkflowJson, Data.Entity.UDS.UDSRepository repository)
        {
            if (string.IsNullOrEmpty(udsWorkflowJson))
            {
                throw new ArgumentNullException("udsWorkflowJson");
            }

            if (repository == null)
            {
                throw new ArgumentNullException("repository");
            }

            UDSModel         udsModel = UDSModel.LoadXml(repository.ModuleXML);
            UDSWorkflowModel model    = JsonConvert.DeserializeObject <UDSWorkflowModel>(udsWorkflowJson, DocSuiteContext.DefaultWebAPIJsonSerializerSettings);
            UDSModelField    udsField;

            foreach (Section metadata in udsModel.Model.Metadata)
            {
                foreach (FieldBaseType item in metadata.Items)
                {
                    udsField = new UDSModelField(item);
                    foreach (KeyValuePair <string, string> data in model.DynamicDatas)
                    {
                        if (data.Key.Eq(udsField.ColumnName))
                        {
                            udsField.Value = data.Value;
                        }
                    }
                }
            }

            if (udsModel.Model.Contacts != null && model.Contact != null)
            {
                //todo: sarà sempre e solo un singolo contatto?
                Contacts contact = udsModel.Model.Contacts.FirstOrDefault();
                if (model.Contact.HasId())
                {
                    ContactInstance newInstance = new ContactInstance()
                    {
                        IdContact = model.Contact.Id.Value
                    };
                    contact.ContactInstances = (contact.ContactInstances ?? Enumerable.Empty <ContactInstance>()).Concat(new ContactInstance[] { newInstance }).ToArray();
                }
                else if (!string.IsNullOrEmpty(model.Contact.Description))
                {
                    ContactManualInstance newManualInstance = new ContactManualInstance()
                    {
                        ContactDescription = model.Contact.Description
                    };
                    contact.ContactManualInstances = (contact.ContactManualInstances ?? Enumerable.Empty <ContactManualInstance>()).Concat(new ContactManualInstance[] { newManualInstance }).ToArray();
                }
            }

            UDSDto udsDto = new UDSDto()
            {
                UDSModel = udsModel
            };

            return(udsDto);
        }
Exemple #2
0
        public UDSDto GetUDSSource(Data.Entity.UDS.UDSRepository udsRepository, string odataFilter)
        {
            string                   controllerName = Utils.GetWebAPIControllerName(udsRepository.Name);
            IBaseAddress             webApiAddress  = DocSuiteContext.Current.CurrentTenant.WebApiClientConfig.Addresses.FirstOrDefault(x => x.AddressName.Eq(UDS_ADDRESS_NAME));
            WebApiControllerEndpoint udsEndpoint    = new WebApiControllerEndpoint
            {
                AddressName    = UDS_ADDRESS_NAME,
                ControllerName = controllerName,
                EndpointName   = "UDSModel"
            };

            HttpClientConfiguration customHttpConfiguration = new HttpClientConfiguration();

            customHttpConfiguration.Addresses.Add(webApiAddress);
            customHttpConfiguration.EndPoints.Add(udsEndpoint);

            odataFilter = string.Concat("?", odataFilter, "&applySecurity='0'");
            string jsonSource = WebAPIImpersonatorFacade.ImpersonateRawRequest <UDSModel, string>(WebAPIHelper, odataFilter, customHttpConfiguration);

            if (string.IsNullOrEmpty(jsonSource))
            {
                return(null);
            }

            return(ReadUDSJson(jsonSource, udsRepository));
        }
Exemple #3
0
        /// <summary>
        /// Deserializza una struttura JSON dinamica recuperata da WebAPI.
        /// </summary>
        /// <returns>oggetto UDSDto</returns>
        public UDSDto ReadUDSJson(string udsJson, Data.Entity.UDS.UDSRepository repository)
        {
            if (string.IsNullOrEmpty(udsJson))
            {
                throw new ArgumentNullException("udsJson");
            }

            if (repository == null)
            {
                throw new ArgumentNullException("repository");
            }

            UDSModel     udsModel   = UDSModel.LoadXml(repository.ModuleXML);
            string       jsonParsed = ParseJson(udsJson);
            UDSEntityDto entityDto  = JsonConvert.DeserializeObject <IList <UDSEntityDto> >(jsonParsed, DocSuiteContext.DefaultUDSJsonSerializerSettings).FirstOrDefault();

            if (entityDto == null)
            {
                return(null);
            }
            FillBaseData(entityDto, udsModel);
            FillMetadata(jsonParsed, udsModel);
            FillDocuments(entityDto, udsModel);
            FillContacts(entityDto, udsModel);
            FillAuthorization(entityDto, udsModel);
            FillMessages(entityDto, udsModel);
            FillPECMails(entityDto, udsModel);
            FillProtocols(entityDto, udsModel);
            FillCollaborations(entityDto, udsModel);

            UDSDto dto = new UDSDto()
            {
                Id               = entityDto.Id.Value,
                Year             = entityDto.Year.Value,
                Number           = entityDto.Number.Value,
                Status           = entityDto.Status,
                CancelMotivation = entityDto.CancelMotivation,
                RegistrationDate = entityDto.RegistrationDate.Value,
                RegistrationUser = entityDto.RegistrationUser,
                LastChangedDate  = entityDto.LastChangedDate,
                LastChangedUser  = entityDto.LastChangedUser,
                Subject          = entityDto.Subject,
                Category         = entityDto.Category,
                UDSRepository    = entityDto.UDSRepository,
                Authorizations   = entityDto.Authorizations,
                Contacts         = entityDto.Contacts,
                Documents        = entityDto.Documents,
                Messages         = entityDto.Messages,
                PecMails         = entityDto.PecMails,
                Collaborations   = entityDto.Collaborations,
                DocumentUnits    = entityDto.DocumentUnits,
                UDSModel         = udsModel
            };

            return(dto);
        }
 public UDSRepositoryRightsUtil(Data.Entity.UDS.UDSRepository udsRepository, string userName, UDSDto udsDto)
     : this(userName, udsDto)
 {
     CurrentUDSRepository = udsRepository;
 }