Ejemplo n.º 1
0
        public async Task <Response> SellItem(Guid AdID, Guid buyerID)
        {
            Response response = new Response();

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    DataResponse <Ad> adResponse = await GetObjectByID(AdID);

                    if (adResponse.Data.Count > 0)
                    {
                        Response ChangeCash = await _userRepository.ChangeCashValues(adResponse.Data[0].SellerUserID, buyerID, adResponse.Data[0].Price);

                        Response ChangeOwnerItem = await _itemRepository.ChangeOwner(buyerID, adResponse.Data[0].ItemID);

                        if (ChangeCash.Success && ChangeOwnerItem.Success)
                        {
                            await _saleRepository.Creat(new Sale(buyerID, AdID));

                            await _context.SaveChangesAsync();

                            return(response);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                response.AddError("Banco de dados", "Error no banco de dados, contate um suporte");

                StringBuilder logMessage = new StringBuilder();
                logMessage.Append(DateTime.Now.ToString());
                log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString());
            }
            return(response);
        }
Ejemplo n.º 2
0
        public async Task <Response> Creat(Sale objectToCreat)
        {
            Response response = Validate.SaleValidate(false, objectToCreat);

            return(response.HasError() ? response : await _repository.Creat(objectToCreat));
        }