Пример #1
0
        public byte[] ConvertToVCF(string xmlProfile)
        {
            var model = new VCFProfileDTO {
                xmlProfile = xmlProfile
            };
            Error            error;
            ValidationResult validationResult;

            if (this.IsValid(model, out validationResult))
            {
                string fileName, exception;
                var    resultBytes = this.VCFModel.ConvertToVCF(model.xmlProfile, out fileName, out exception);
                if (resultBytes != null)
                {
                    return(resultBytes);
                }

                error = new Error(Errors.CODE_ERRORTYPE_GENERIC_ERROR, "ConversionFailed", exception);
            }
            else
            {
                error = this.GenerateValidationError(validationResult);
            }

            this.LogError("Lookup.ConvertToVCF", error);
            throw new FaultException <Error>(error, error.errorMessage);
        }
Пример #2
0
        public SNMemberSaveAllDTO SaveAll(SNMemberDTO[] results)
        {
            results = results ?? new SNMemberDTO[0];

            var result  = new SNMemberSaveAllDTO();
            var faults  = new List <string>();
            var created = new List <SNMember>();

            var            sessionModel   = SNSessionMemberModel;
            ACSessionModel acSessionModel = ACSessionModel;

            foreach (var appletResultDTO in results)
            {
                ValidationResult validationResult;
                var isValidDto   = IsValid(appletResultDTO, out validationResult);
                var profileModel = new VCFProfileDTO {
                    xmlProfile = appletResultDTO.participantProfile
                };
                ValidationResult profileValidationResult;
                var isValidProfile = IsValid(profileModel, out profileValidationResult);
                if (isValidDto && isValidProfile)
                {
                    var isTransient  = appletResultDTO.snMemberId == 0;
                    var appletResult = isTransient ? null : sessionModel.GetOneById(appletResultDTO.snMemberId).Value;
                    appletResult = ConvertDto(appletResultDTO, appletResult, acSessionModel);
                    sessionModel.RegisterSave(appletResult);
                    created.Add(appletResult);
                }
                else
                {
                    if (!isValidDto)
                    {
                        faults.AddRange(UpdateResultToString(validationResult));
                    }
                    if (!isValidProfile)
                    {
                        faults.AddRange(UpdateResultToString(profileValidationResult));
                    }
                }
            }

            if (created.Any())
            {
                //var companyId = results.FirstOrDefault(x => x.companyId != 0).With(x => x.companyId);
                //if (companyId != default(int))
                //{
                //    IoC.Resolve<RealTimeNotificationModel>().NotifyClientsAboutChangesInTable<SNMember>(NotificationType.Update, companyId, 0);
                //}

                result.saved = created.Select(x => new SNMemberDTO(x)).ToArray();
            }

            if (faults.Any())
            {
                result.faults = faults.ToArray();
            }

            return(result);
        }