예제 #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
                });
            }
        }
예제 #2
0
        void SendNotification(CreateDiskSpaceData json)
        {
            var operationGuid = Guid.NewGuid().ToString();

            try
            {
                var user = _userRepository.GetUserById(json.UserId);
                var createDiskSpaceMailObject = new CreateDiskSpaceMailObject
                {
                    TemplateName    = nameof(MailTemplateName.STaaSCreateDiskSpace),
                    OrderDemandGuid = operationGuid,
                    FirstName       = user.FirstName,
                    LastName        = user.LastName,
                    Email           = user.Email,
                    DiskSpaceName   = json.DiskName
                };
                _orderDemandRepository.SaveOrderDemand(null, operationGuid, json.CompanyId, (int)ProvisionType.SendMail, (int)OrderDemandStates.Created, (int)OrderDemandType.Integrated, JsonConvert.SerializeObject(createDiskSpaceMailObject), null);
            }
            catch (Exception ex)
            {
                _logRepository.InsertLogoRecord(nameof(SendNotification) + " " + nameof(CreateDiskSpace), nameof(LogLevel.Error), ex.Message + " " + ex.StackTrace, operationGuid, null);
            }
        }
예제 #3
0
        public override void DoJob(dynamic data)
        {
            var operationGuid = string.Empty;

            try
            {
                CreateDiskSpaceData json = JsonConvert.DeserializeObject <CreateDiskSpaceData>(data);
                operationGuid = json.OrderDemandGuid;

                var folderGuid = new Guid(operationGuid);
                _sTaaSSoap.DiskSpaceCreate(folderGuid.ToString("N"));
                _diskSpaceRepository.CreateDiskSpace(json.ProductId, json.UserId, (byte?)DiskSpaceState.Active, json.DiskName, json.Description, folderGuid, new Guid(json.AssetGroupId));

                _orderDemandRepository.ChangeOrderDemandState(operationGuid, (int)OrderDemandStates.Finished);

                SendNotification(json);
            }

            catch (Exception ex)
            {
                _orderDemandRepository.ChangeOrderDemandState(operationGuid, (int)OrderDemandStates.FinishedError);
                _logRepository.InsertLogoRecord(nameof(CreateDiskSpace), nameof(LogLevel.Error), ex.Message + " " + ex.StackTrace, operationGuid, data);
            }
        }