Exemple #1
0
        public async Task <WebAppMessage> ClearContractors(int sourceId)
        {
            var message = new WebAppMessage {
                IsError = false, MessageText = ""
            };

            try
            {
                var contractors = await _context.Contractors.Where(c => c.SourceId == sourceId).ToListAsync();

                if (contractors != null && contractors.Count > 0)
                {
                    contractors.ForEach(c => { c.ContractorErpId = null; c.ContractorErpPosition = null; });
                    await _context.SaveChangesAsync();

                    message.MessageText = $"Zaktualizowano {contractors.Count} kontrahentów";
                }
            }
            catch (Exception ex)
            {
                message.IsError     = true;
                message.MessageText = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
            }

            return(message);
        }
Exemple #2
0
        public async Task <WebAppMessage> UpdateSource(SourceAggregate sourceAggregate)
        {
            var message = new WebAppMessage {
                IsError = false, MessageText = ""
            };

            try
            {
                using (var dbContextTransaction = await _context.Database.BeginTransactionAsync())
                {
                    var source = await _context.Sources.FirstOrDefaultAsync(s => s.SourceId == sourceAggregate.Source.SourceId);

                    if (source == null)
                    {
                        throw new Exception("Nie znaleziono danych do aktualizacji");
                    }
                    var accountingRecords = await _context.AccountingRecords.Where(a => a.SourceId == sourceAggregate.Source.SourceId).ToListAsync();

                    if (accountingRecords != null)
                    {
                        accountingRecords.Clear();
                        await _context.SaveChangesAsync();
                    }

                    source.TargetId          = sourceAggregate.Source.TargetId;
                    source.Description       = sourceAggregate.Source.Description;
                    source.Code              = sourceAggregate.Source.Code;
                    source.Type              = sourceAggregate.Source.Type;
                    source.Address           = sourceAggregate.Source.Address;
                    source.DbName            = sourceAggregate.Source.DbName;
                    source.Username          = sourceAggregate.Source.Username;
                    source.Password          = sourceAggregate.Source.Password;
                    source.AccountingRecords = sourceAggregate.Source.AccountingRecords;
                    await _context.SaveChangesAsync();

                    var targetDocumentSettings = await _context.TargetDocumentsSettings.FirstOrDefaultAsync(t => t.SourceId == source.SourceId);

                    if (targetDocumentSettings == null)
                    {
                        targetDocumentSettings = new TargetDocumentSettings
                        {
                            SourceId         = source.SourceId,
                            DocumentShortcut = sourceAggregate.TargetDocumentSettings.DocumentShortcut,
                            VatRegisterId    = sourceAggregate.TargetDocumentSettings.VatRegisterId,
                            VatRegisters     = (sourceAggregate.TargetDocumentSettings.VatRegisters != null && sourceAggregate.TargetDocumentSettings.VatRegisters.Count > 0) ? sourceAggregate.TargetDocumentSettings.VatRegisters : null
                        };
                        await _context.AddAsync(targetDocumentSettings);

                        await _context.SaveChangesAsync();
                    }

                    var vatRegisters = await _context.VatRegisters.Where(v => v.TargetDocumentSettingsId == targetDocumentSettings.TargetDocumentSettingsId).ToListAsync();

                    if (vatRegisters != null &&
                        sourceAggregate.TargetDocumentSettings.VatRegisters != null &&
                        sourceAggregate.TargetDocumentSettings.VatRegisters.Count > 0)
                    {
                        vatRegisters.Clear();
                        await _context.SaveChangesAsync();
                    }

                    targetDocumentSettings.DocumentShortcut = sourceAggregate.TargetDocumentSettings.DocumentShortcut;
                    targetDocumentSettings.VatRegisterId    = sourceAggregate.TargetDocumentSettings.VatRegisterId;
                    if (sourceAggregate.TargetDocumentSettings.VatRegisters != null && sourceAggregate.TargetDocumentSettings.VatRegisters.Count > 0)
                    {
                        targetDocumentSettings.VatRegisters = sourceAggregate.TargetDocumentSettings.VatRegisters;
                    }
                    await _context.SaveChangesAsync();

                    await dbContextTransaction.CommitAsync();
                }
            }
            catch (Exception ex)
            {
                message.IsError     = true;
                message.MessageText = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
            }

            return(message);
        }