Exemplo n.º 1
0
        internal Result AddAsset(string customerId, AddAssetParams data)
        {
            var loggerManager = new LoggerManager();
            var operationGuid = Guid.NewGuid().ToString();

            try
            {
                loggerManager.InsertLogoRecord(nameof(AddAsset), nameof(LogLevel.Info), null, data.TransactionId, JsonConvert.SerializeObject(data));

                var customerManager = new CustomerManager();
                var customer        = customerManager.GetCompanyByExternalId(customerId);

                var user = customerManager.GetCompanyFirstAdminByExternalId(customerId);

                var product = customerManager.GetProductByProductExternalId(data.ProductId);

                var diskName = data.AdditionalAttribute.FirstOrDefault(a => a.Name.Equals(nameof(CreateDiskSpaceData.DiskName)));

                var orderDemandManager = new OrderDemandManager();
                var addAsset           = new CreateDiskSpaceData
                {
                    OrderDemandGuid = operationGuid,
                    AssetGroupId    = data.AssetId,
                    CompanyId       = customer.CompanyId,
                    ProductId       = product.ProductID,
                    UserId          = user.UserId,
                    DiskName        = diskName?.Value
                };

                orderDemandManager.SaveOrderDemand(null, operationGuid, 0, (int)ProvisionType.CreateDiskSpace, (int)OrderDemandStates.Created, (int)OrderDemandType.Integrated, JsonConvert.SerializeObject(addAsset), data.TransactionId);
                return(new Result {
                    IsCompleted = false, Success = true
                });
            }
            catch (Exception ex)
            {
                loggerManager.InsertLogoRecord(nameof(AddAsset), nameof(LogLevel.Error), ex.Message + " " + ex.StackTrace, operationGuid, JsonConvert.SerializeObject(data));
                return(new Result {
                    IsCompleted = true, Success = false, Message = ex.Message
                });
            }
        }
Exemplo n.º 2
0
        public async Task <Result> AddAssetAsync(string customerId, AddAssetParams data)
        {
            try
            {
                var company = await _dataService.CompanyService.ExternalGetAsync(customerId);

                if (_trendMicroManager.GetUsersCount(company.ApplicationCustomerID) == 0)
                {
                    var applicationCustomerId = await _trendMicroManager.CreateCustomerAsync(customerId);

                    return(await _trendMicroManager.CreateSubscriptionAsync(applicationCustomerId, data.Quantity, customerId, _settings.ServicePlanId, data.AssetId));
                }
                else
                {
                    var subscription = await _trendMicroManager.GetSubscriptionAsync(customerId);

                    if (subscription.Licenses[0].LicenseExpirationDate < DateTime.Now)
                    {
                        await _trendMicroManager.ReactivateSubscriptionAsync(customerId);
                    }
                    var ret = await _trendMicroManager.UpdateSubscriptionAsync(data.Quantity, customerId, _settings.ServicePlanId);

                    var user = await _dataService.UserService.ExternalGetAsync(customerId);

                    var role = await _dataService.RolesService.GetAsync((int)Role.Admin);

                    var customer = await _dataService.CompanyService.ExternalGetAsync(customerId);

                    var userRole = await _dataService.UserRoleService.GetByUserIdAndRoleAsync(user.Id, role.Id);


                    if (userRole == null)
                    {
                        userRole = new UserRole
                        {
                            Quantity = data.Quantity,
                            RoleId   = role.Id,
                            UserId   = user.Id
                        };
                        _dataService.UserRoleService.Add(userRole);
                    }
                    else
                    {
                        userRole.Quantity = data.Quantity;
                        _dataService.UserRoleService.Update(userRole);
                    }

                    customer.IsDeleted   = false;
                    customer.IsSuspended = false;
                    _dataService.CompanyService.Update(customer);

                    await _dataService.SaveChangesAsync();

                    return(ret);
                }
            }
            catch (Exception ex)
            {
                await _dataService.LogDataService.InsertLogoRecordAsync(nameof(AddAssetAsync), nameof(Enums.LogLevel.Error), ex.Message, data.TransactionId, JsonConvert.SerializeObject(data));

                return(new Result(false, ex.Message));
            }
        }