internal bool CheckRequiredParams(ServiceActivation act)
        {
            bool isNull = string.IsNullOrEmpty(act.role) || string.IsNullOrEmpty(act.service_type) || string.IsNullOrEmpty(act.company_id) ||
                          string.IsNullOrEmpty(act.email);

            return(!isNull);
        }
        private IRestResponse ActivateService(ServiceActivation service, string projectId, int rowIndex = -1)
        {
            IRestResponse response = null;

            if (false == CheckRequiredParams(service))
            {
                string msg = $"- one of the required parameters is null or empty. Required are: role, service_type,company_id,email";
                if (rowIndex > -1)
                {
                    DataController._serviceTable.Rows[rowIndex]["result"]         = ResultCodes.IncompleteInputData;
                    DataController._serviceTable.Rows[rowIndex]["result_message"] = msg;
                }

                Log.Error(msg);
            }

            try
            {
                response = _projectApi.PostUserAndService(projectId, service);
                ActivateProjectResponseHandler(response, projectId, rowIndex);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            return(response);
        }
示例#3
0
        /// <summary>
        /// Creat model.
        /// </summary>
        /// <param name="modelBuilder">model builder</param>
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            try
            {
                base.OnModelCreating(modelBuilder);
                OnUserModelCreating(modelBuilder);
                OnAcvtivityModelCreating(modelBuilder);
                OnNewsModelCreating(modelBuilder);
                OnOccurrenceModelCreating(modelBuilder);
                OnRessourceModelCreating(modelBuilder);
                OnCountryModelCreating(modelBuilder);
                OnSectionModelCreating(modelBuilder);
                OnNewsletterModelCreating(modelBuilder);
                OnAboutModelCreating(modelBuilder);
                OnStepModelCreating(modelBuilder);

                modelBuilder.HasDefaultSchema(ConfigurationManagerHelper.GetAppSettingsToString(Constant.OmsDefaultSchema, string.Empty));
                modelBuilder.Properties().Where(p => p.PropertyType == typeof(string) && p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0).Configure(p => p.HasMaxLength(int.MaxValue));
                var entityMethod   = typeof(DbModelBuilder).GetMethod("Entity");
                var activeServices = ServiceActivation.GetAllActivatedServices().ToList();
                foreach (var service in activeServices)
                {
                    var entityAssembly = ServiceSettings.GetEntityAssembly(service);
                    var dependencies   = ServiceSettings.GetAllServiceDependencies(service).ToSystemTypeList(entityAssembly);
                    foreach (var type in dependencies)
                    {
                        if (entityMethod != null)
                        {
                            entityMethod.MakeGenericMethod(type).Invoke(modelBuilder, new object[] { });
                        }
                    }
                    var configs = ServiceSettings.GetAllServiceConfigurationDependencies(service).ToSystemTypeList(entityAssembly);
                    foreach (var type in configs)
                    {
                        dynamic configurationInstance = Activator.CreateInstance(type);
                        modelBuilder.Configurations.Add(configurationInstance);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ArgumentNullException(ex.Message);
            }
        }
        /// <summary>
        /// The overrided load method.
        /// </summary>
        public override void Load()
        {
            // gets activated services
            var activeServices = ServiceActivation.GetAllActivatedServices().ToList();

            foreach (var service in activeServices)
            {
                // gets list of adapters for service
                var serviceAssemblyName = ServiceSettings.GetServiceAssembly(service, Configuration.Section.Enum.AssemblyType.Service);
                if (!string.IsNullOrEmpty(serviceAssemblyName))
                {
                    var serviceAssembly = Assembly.Load(serviceAssemblyName);
                    var adapters        = ServiceSettings.GetAllServiceAdapters(service, Configuration.Section.Enum.AssemblyType.Service);
                    foreach (var adapter in adapters)
                    {
                        var _class     = serviceAssembly.GetType(adapter.Key);
                        var _interface = serviceAssembly.GetType(adapter.Value);
                        Bind(_interface).To(_class);
                    }
                }

                // gets list of adapters for web Api service
                var webApiServiceAssemblyName = ServiceSettings.GetServiceAssembly(service, Configuration.Section.Enum.AssemblyType.WebApiService);
                if (string.IsNullOrEmpty(webApiServiceAssemblyName))
                {
                    continue;
                }
                {
                    var webApiServiceAssembly = Assembly.Load(webApiServiceAssemblyName);
                    var adapters = ServiceSettings.GetAllServiceAdapters(service, Configuration.Section.Enum.AssemblyType.WebApiService);
                    foreach (var adapter in adapters)
                    {
                        var _class     = webApiServiceAssembly.GetType(adapter.Key);
                        var _interface = webApiServiceAssembly.GetType(adapter.Value);
                        Bind(_interface).To(_class);
                    }
                }
            }
        }
示例#5
0
        //var request = new RestRequest(Method.GET);
        //    //request.Resource = "bim360/admin/v1/projects/{ProjectId}/users";
        //    request.Resource = Urls["projects_users"];
        //    request.AddParameter("ProjectId", projectId, ParameterType.UrlSegment);

        //    request.AddHeader("cache-control", "no-cache");
        //    request.AddHeader("authorization", $"Bearer {Token}");
        //    request.AddHeader("content-type", ContentType);

        //    JsonSerializerSettings settings = new JsonSerializerSettings();
        //    settings.NullValueHandling = NullValueHandling.Ignore;

        //    IRestResponse response = ExecuteRequest(request); // Client.Execute(request);
        //    return response;
        //}

        /// <summary>
        /// Assigns an admin user and services to a project. Returns an error if that user is already assigned
        /// To update projects and add new services use PatchProjects instead
        /// </summary>
        /// <param name="projectId">Id of the project</param>
        /// <param name="service">A ServiceActivation object</param>
        /// <returns>IRestResponse object</returns>
        public IRestResponse PostUserAndService(string projectId, ServiceActivation service)
        {
            var request = new RestRequest(Method.POST);

            //request.Resource = "hq/v1/accounts/{AccountId}/projects/{ProjectId}/users";
            request.Resource = Urls["projects_projectId_users"];
            request.AddParameter("AccountId", options.ForgeBimAccountId, ParameterType.UrlSegment);
            request.AddParameter("ProjectId", projectId, ParameterType.UrlSegment);

            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("authorization", $"Bearer {Token}");
            request.AddHeader("content-type", ContentType);

            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.NullValueHandling = NullValueHandling.Ignore;
            string serviceString = JsonConvert.SerializeObject(service, settings);

            request.AddParameter("application/json", serviceString, ParameterType.RequestBody);

            IRestResponse response = ExecuteRequest(request); // Client.Execute(request);

            return(response);
        }
        public static Dictionary <int, ServiceActivation> GetServiceActivations()
        {
            Dictionary <int, ServiceActivation> serviceActivations = new Dictionary <int, ServiceActivation>();
            int i = 0;

            foreach (DataRow row in _serviceTable.Rows)
            {
                i++;
                // skip empty rows
                if (string.IsNullOrWhiteSpace(Convert.ToString(row)))
                {
                    continue;
                }

                ServiceActivation service = new ServiceActivation();
                try
                {
                    service.project_name = Util.GetStringOrNull(row["project_name"]);
                    if (false == Util.IsNameValid(service.project_name))
                    {
                        Log.Error($"- row {i} skipped. project_name is missing or invalid.");
                        continue;
                    }
                    service.service_type = Util.GetStringOrNull(row["service_type"]);

                    if (string.IsNullOrWhiteSpace(service.service_type))
                    {
                        Log.Warn($"- row {i} skipped. service_type is missing.");
                        continue;
                    }
                    //else if (service.service_type.Contains(Config.secondDelimiter.ToString()))
                    //{
                    //    // Replace service_type delimeter to comma
                    //    service.service_type = service.service_type.Replace(Config.secondDelimiter, ',');
                    //}
                    service.email = Util.GetStringOrNull(row["email"]);
                    if (string.IsNullOrWhiteSpace(service.email))
                    {
                        Log.Warn($"- row {i} skipped. email is missing.");
                        continue;
                    }
                    service.company = Util.GetStringOrNull(row["company"]);
                    if (string.IsNullOrWhiteSpace(service.company))
                    {
                        Log.Warn($"- row {i} skipped. company is missing.");
                        continue;
                    }

                    BimCompany comp = Companies.FirstOrDefault(c => c.name.Equals(service.company));
                    if (comp != null)
                    {
                        service.company_id = comp.id;
                    }
                }
                catch (Exception e)
                {
                    row["result"]         = ResultCodes.ErrorParsing;
                    row["result_message"] = e.Message;
                    Log.Error(e, $"- error parsing row {i}");
                    continue;
                }
                serviceActivations.Add(i - 1, service);
            }
            return(serviceActivations);
        }