Exemple #1
0
        public async Task <SaleManagementResult> AddErrorAsync(SaleManagementResult badResult)
        {
            SaleManagementResult result = new SaleManagementResult()
            {
                Succeeded = false,
                FileName  = badResult.FileName
            };

            try
            {
                unitOfWork.ErrorFiles.Add(new ErrorFile()
                {
                    FileName         = badResult.FileName,
                    ErrorDescription = badResult.ErrorMessage
                });
                int savedCount = await unitOfWork.SaveChangesAsync().ConfigureAwait(false);

                result.Succeeded    = savedCount > 0;
                result.ErrorMessage = savedCount > 0 ? "" : "Data is not saved";
            }
            catch (Exception e)
            {
                unitOfWork.DiscardChanges();
                result.ErrorMessage = e.GetLastInnerExceptionMessage();
            }

            return(result);
        }
Exemple #2
0
        protected virtual async Task <SaleManagementResult> AddSaleDetailsDataAsync(SourceFile sourceFile, IList <SaleDto> saleDetailsData)
        {
            var mapper = Mappings.GetMapper();

            try
            {
                var sales = GetSalesAndSaveProductsAndCustomers(sourceFile, saleDetailsData);
                if (sales.Count == 0)
                {
                    throw new ArgumentException("Empty sales list or thread error.");
                }
                unitOfWork.SourceFiles.Add(sourceFile);
                unitOfWork.Sales.AddRange(sales);
                await unitOfWork.SaveChangesAsync().ConfigureAwait(false);

                return(new SaleManagementResult()
                {
                    Succeeded = true
                });
            }
            catch (Exception e)
            {
                unitOfWork.DiscardChanges();
                return(new SaleManagementResult()
                {
                    Succeeded = false,
                    ErrorMessage = e.GetLastInnerExceptionMessage()
                });
            }
        }