public void DeleteDocument(ClientReportDocument document)
 {
     try
     {
         CheckDeleteRight();
         var clientReportDocument = document as ClientReportDocument;
         var firstClientReposrt   = clientReportDocument.BankReportClients.FirstOrDefault().ClientReport;
         var clientBankReportIds  = Context.BankReportClients
                                    .All()
                                    .Where(x => x.ClientReportId == firstClientReposrt.Id)
                                    .Select(x => x.Id)
                                    .ToArray();
         Context.BankReportClients.DeleteRange(clientBankReportIds);
         Context.ClientReports.Delete(firstClientReposrt.Id);
         Context.SaveChanges();
     }
     catch (AccessDeniedException)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Instance.Log(ex);
         throw new Exception("Не удалось удалить документ, обратитесь к администратору");
     }
 }
        public void SaveDocument(ClientReportDocument document)
        {
            try
            {
                CheckAddRight();
                var firstClientReposrt = document.BankReportClients.FirstOrDefault().ClientReport;
                if (firstClientReposrt.Id == 0)
                {
                    firstClientReposrt.UserId = User.Id;
                    Context.ClientReports.AddOrUpdate(firstClientReposrt);
                    foreach (var iBankReportClient in document.BankReportClients)
                    {
                        iBankReportClient.ClientReport = firstClientReposrt;

                        Context.BankReportClients.AddOrUpdate(iBankReportClient);
                    }
                }
                else
                {
                    var oldBankReportClients = Context.BankReportClients
                                               .All()
                                               .Where(x => x.ClientReport.Id == firstClientReposrt.Id)
                                               .ToList();
                    foreach (BankReportClient iClientBankReport in oldBankReportClients)
                    {
                        var bank =
                            document.BankReportClients.FirstOrDefault(
                                x => x.Id == iClientBankReport.Id);
                        if (bank == null)
                        {
                            Context.BankReportClients.Delete(iClientBankReport);
                        }
                        else
                        {
                            Context.BankReportClients.AddOrUpdate(bank);
                        }
                    }
                    foreach (var iNewBank in document.BankReportClients.Where(x => x.Id == 0))
                    {
                        Context.BankReportClients.AddOrUpdate(iNewBank);
                    }
                    Context.ClientReports.AddOrUpdate(firstClientReposrt);
                }
                Context.SaveChanges();
            }
            catch (AccessDeniedException)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Instance.Log(ex);
                throw new Exception("Не удалось сохранить документ, обратитесь к администратору");
            }
        }
        private void _Settings(int?id)
        {
            using (var service = new AimpService())
            {
                var response = service.GetClientReport(id);

                if (id == null)
                {
                    ClientReport          = new ClientReport();
                    _clientReportDocument = new ClientReportDocument();
                    _clientReport         = new ClientReport();
                    ClientBankStatus      = new ObservableCollection <ClientBankStatusViewModel>(response.Banks
                                                                                                 .Select(x => new ClientBankStatusViewModel()
                    {
                        Bank               = x,
                        BankStatuses       = response.BankStatuses,
                        SelectedBankStatus = response.BankStatuses.FirstOrDefault()
                    }));
                }
                else
                {
                    ClientReport              = response.Document.BankReportClients.First().ClientReport;
                    _clientReport             = TinyMapper.Map <ClientReport>(ClientReport);
                    ClientReport.ClientStatus = response.ClientStatuses.FirstOrDefault(x => x.Id == ClientReport.ClientStatus?.Id);

                    ClientReport.CreditProgramm = response.CreditProgramms.FirstOrDefault(x => x.Id == ClientReport.CreditProgramm?.Id);

                    _clientReportDocument = response.Document;

                    var clientBankStatuses = (from bRep in response.Banks
                                              join bClient in response.Document.BankReportClients
                                              on bRep.Id equals bClient.Bank.Id into bankDefault
                                              from bClient in bankDefault.DefaultIfEmpty()
                                              select new { bClient?.Id,
                                                           Enabled = bClient != null ? true : false,
                                                           Bank = bRep,
                                                           BankStatus = bClient?.BankStatus })
                                             .Select(x => new ClientBankStatusViewModel()
                    {
                        Id                 = x.Id != null ? (int)x.Id : 0,
                        Bank               = x.Bank,
                        Enable             = x.Enabled,
                        BankStatuses       = response.BankStatuses,
                        SelectedBankStatus = response.BankStatuses.FirstOrDefault(y => y.Id == x.BankStatus?.Id)
                    });

                    ClientBankStatus = new ObservableCollection <ClientBankStatusViewModel>(clientBankStatuses);
                }

                ClientStatuses = new ObservableCollection <ClientStatus>(response.ClientStatuses);

                CreditProgramms = new ObservableCollection <CreditProgramm>(response.CreditProgramms);
            }
        }
Пример #4
0
        public Response SaveClientReport(ClientReportDocument document)
        {
            try
            {
                using (var aimp = new Aimp(_login, _password))
                {
                    aimp.SaveDocument(document);
                }

                return(new Response()
                {
                    Message = "Данные успешно сохраненны"
                });
            }
            catch (Exception ex)
            {
                return(new Response(ex));
            }
        }
Пример #5
0
        public Response DeleteClientReport(ClientReportDocument document)
        {
            try
            {
                _WriteLineConsole($"delete client report identity: {document.Identity}");
                using (var helper = new ClientReportHelper())
                {
                    helper.DeleteDocument(document);
                }

                return(new Response()
                {
                    Message = "Документ удален"
                });
            }
            catch (Exception ex)
            {
                _WriteLineError($"delete client report identity: {document?.Identity}", ex.Message);
                return(new Response(ex));
            }
        }
Пример #6
0
        public Response SaveClientReport(ClientReportDocument document)
        {
            try
            {
                _WriteLineConsole($"save client report identity: {document.Identity}");
                using (var helper = new ClientReportHelper())
                {
                    helper.SaveDocument(document);
                }

                return(new Response()
                {
                    Message = "Данные успешно сохраненны"
                });
            }
            catch (Exception ex)
            {
                _WriteLineError($"save client report identity: {document?.Identity}", ex.Message);
                return(new Response(ex));
            }
        }
Пример #7
0
 public void SaveDocument(ClientReportDocument document)
 {
     _logic.SaveDocument(document);
 }
Пример #8
0
 public void DeleteDocument(ClientReportDocument document)
 {
     _logic.DeleteDocument(document);
 }