Пример #1
0
        public async Task <Result> AssignProductAsync(string customerId, string userId, string productId, AssignProductParams data)
        {
            try
            {
                var role = await _dataService.RolesService.ExternalGetAsync(productId);

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

                var userRole = new UserRole
                {
                    RoleId     = role.Id,
                    UserId     = user.Id,
                    ExternalId = data.TransactionId,
                    Quantity   = 1 //Uvijek ide samo jedna licenca
                };

                _dataService.UserRoleService.Add(userRole);
                await _dataService.SaveChangesAsync();

                return(new Result(true, null));
            }
            catch (Exception ex)
            {
                await _dataService.LogDataService.InsertLogoRecordAsync(nameof(AssignProductAsync), nameof(Enums.LogLevel.Error), ex.Message, data.TransactionId, JsonConvert.SerializeObject(data));

                return(new Result(false, ex.Message));
            }
        }
Пример #2
0
        internal Result AssignProduct(string customerId, string userId, string productId, AssignProductParams data)
        {
            var loggerManager = new LoggerManager();
            var operationGuid = Guid.NewGuid().ToString();

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

                var orderDemandManager = new OrderDemandManager();
                var assignProduct      = new AssigneProductData
                {
                    ExternalId        = userId,
                    OrderDemandGuid   = operationGuid,
                    ExternalProcudtId = productId
                };

                var validator  = new AssignProductValidator();
                var valResults = validator.Validate(assignProduct);

                var validationSucceeded = valResults.IsValid;
                if (!validationSucceeded)
                {
                    var failures = valResults.Errors;

                    var message = failures.Aggregate(string.Empty, (current, failure) => current + (failure.ErrorMessage + "<br />"));
                    return(new Result {
                        IsCompleted = false, Success = false, Message = message
                    });
                }

                orderDemandManager.SaveOrderDemand(null, operationGuid, 0, (int)ProvisionType.AssigneProduct, (int)OrderDemandStates.Created, (int)OrderDemandType.Integrated, JsonConvert.SerializeObject(assignProduct), data.TransactionId);
                return(new Result {
                    IsCompleted = false, Success = true
                });
            }
            catch (Exception ex)
            {
                loggerManager.InsertLogoRecord(nameof(AssignProduct), nameof(LogLevel.Error), ex.Message + " " + ex.StackTrace, operationGuid, JsonConvert.SerializeObject(data));
                return(new Result {
                    IsCompleted = true, Success = false, Message = ex.Message
                });
            }
        }