public OperationResultDto IsEventValid(CompanyQuizEventMappingSaveDTO eventQuizMapping) { var defaultAcDomain = CompanyAcServerModel.GetOneById(eventQuizMapping.companyAcDomainId).Value; if (defaultAcDomain == null) { return(OperationResultDto.Error("Company was not found")); } var acUri = new Uri(defaultAcDomain.AcServer); var acProvider = new AdobeConnectProvider(new ConnectionDetails(acUri)); var acProxy = new AdobeConnectProxy(acProvider, Logger, acUri); var loginResult = acProxy.Login(new UserCredentials(defaultAcDomain.Username, defaultAcDomain.Password)); if (!loginResult.Success) { return(null); } var eventRegistrationDetails = acProxy.GetEventRegistrationDetails(eventQuizMapping.acEventScoId); string[] requiredFieldNames = new string[3] { "School", "State", "Trainee number or ID" }; StringBuilder errorMessage = new StringBuilder(); foreach (var fieldName in requiredFieldNames) { if (!eventRegistrationDetails.EventFields.Any(ef => string.Equals(ef.Description, fieldName, StringComparison.OrdinalIgnoreCase))) { errorMessage.Append($"{fieldName} field is missed.{Environment.NewLine}"); } } var eventInfo = acProxy.GetEventInfo(eventQuizMapping.acEventScoId); if (string.IsNullOrEmpty(eventInfo.EventInfo.Info)) { errorMessage.Append( $"Event info should be set for the event with sco-id {eventQuizMapping.acEventScoId}.{Environment.NewLine}"); } if (string.IsNullOrEmpty(eventInfo.EventInfo.SpeakerName)) { errorMessage.Append( $"Speaker name should be set for the event with sco-id {eventQuizMapping.acEventScoId}.{Environment.NewLine}"); } if (!string.IsNullOrEmpty(errorMessage.ToString())) { errorMessage.Append( $"Please fix the event details in Adobe Connect and try again.{Environment.NewLine}"); } return(string.IsNullOrEmpty(errorMessage.ToString()) ? OperationResultDto.Success() : OperationResultDto.Error(errorMessage.ToString())); }