示例#1
0
        private void SaveKit(IEnumerable <string> cards)
        {
            var client     = new ClientKit();
            var clientInfo = new Set10ExchangeLoyClient(Guid.NewGuid(), null, DbPg.GetHibernateSequenceNextVal(), null, null, null, null, null, 0, 3, 10, DateTime.Now, string.Empty);
            var cardsList  = new ObservableCollection <Set10ExchangeLoyCard>();

            foreach (var card in cards)
            {
                cardsList.Add(new Set10ExchangeLoyCard(clientInfo.Uid, clientInfo.Set10Guid, DbPg.GetHibernateSequenceNextVal(), card, clientInfo.BonusAccountId));
            }
            client.Client = clientInfo;
            client.Cards  = cardsList;

            try
            {
                client.Save();
                if (IsPrintLabel)
                {
                    Printer.Print(client.Cards[0]?.CardHexNumber, client.Cards[1]?.CardHexNumber, client.Client.Set10Guid.ToString());
                }
                IsScansCount++;
                EventMsg = $"Комплект с номером {client.Client.Set10Guid} создан";
            }
            catch (Exception ex)
            {
                EventMsg = ex.Message;
            }
        }
        private void Sync(ClientKit kit, NpgsqlConnection dbConnection)
        {
            var isExistClient   = DbPg.GetExistNumClient(kit.Client.Set10Guid);
            var cardComposition = kit.Cards.Select(card => new CardsCompositions(card, DbPg.GetExistCardByGuid(card, dbConnection), DbPg.GetExistCardByNumCard(card, dbConnection))).ToList();

            dbConnection = DbPg.GetConnection(dbConnection);
            if (!dbConnection.FullState.Equals(ConnectionState.Open))
            {
                dbConnection.Open();
            }
            var transaction = dbConnection.BeginTransaction();

            try
            {
                var bAccounts = DbPg.GetBonusAccounts(kit.Client.BonusAccountId, dbConnection);
                if (bAccounts == null || bAccounts.Count == 0)
                {
                    BonusAccounts(kit.Client, transaction, dbConnection);
                }
                Client(kit.Client, isExistClient, transaction, dbConnection);
                if (cardComposition.Any())
                {
                    Cards(kit.Client, cardComposition, transaction, dbConnection);
                }
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                throw  new Exception("Sync kit exception.", e);
            }
        }
        private void Client(Set10ExchangeLoyClient client, bool isExistClient, IDbTransaction transaction, NpgsqlConnection dbConnection)
        {
            var cli = new CardClients
            {
                Id                   = client.Set10Guid.Value,
                Auto                 = false,
                Birthdate            = client.BirthDate,
                Childrenage          = string.Empty,
                Appartment           = string.Empty,
                Building             = string.Empty,
                City                 = string.Empty,
                District             = string.Empty,
                Districtarea         = string.Empty,
                House                = string.Empty,
                Other                = string.Empty,
                Region               = string.Empty,
                Street               = string.Empty,
                Zip                  = string.Empty,
                Deleted              = false,
                Email                = client.EMail,
                Firstname            = client.FirstName,
                Guid                 = client.Set10Guid,
                Iscompleted          = true,
                Lastchangedate       = DateTime.Now,
                Lastname             = client.LastName,
                Marital              = false,
                Middlename           = client.MiddleName,
                Mobileoperator       = string.Empty,
                Mobilephone          = client.MobilePhone,
                Delivery             = string.Empty,
                Deliverydate         = null,
                Passnumber           = string.Empty,
                Passserie            = string.Empty,
                Phone                = string.Empty,
                Bymail               = false,
                Bysms                = false,
                Byphone              = false,
                Byemail              = false,
                Sendcatalog          = false,
                Sex                  = 0,
                Shopnumber           = string.Empty,
                Creationdate         = DateTime.Now,
                Bonusbalance         = 0,
                Clienttype           = 0,
                ReceiptFeedbackMeans = 0,
                SmartphoneType       = null,
                WantsECard           = false
            };

            if (isExistClient)
            {
                DbPg.UpdateClient(cli, dbConnection, transaction);
            }
            else
            {
                DbPg.InsertClient(cli, dbConnection, transaction);
            }
        }
示例#4
0
        private void OkCommandMethod()
        {
            if (BeginDate == null || EndDate == null || BeginDate > EndDate)
            {
                return;
            }

            Trans = DbPg.GetTransactions(Client.Client, BeginDate.Value, EndDate.Value).ToList();
        }
        public void Go()
        {
            var dbConnection   = DbPg.GetConnection();
            var dbMsConnection = DbMs.GetConnection();
            var clients        = DbMs.AllChangedClients();

            foreach (var cli in clients)
            {
                var kit = DbMs.GetClientFullInfo(cli, dbMsConnection);

                try
                {
                    Sync(kit, dbConnection);
                    DbMs.UpdateClientKitIsLoadToSet10(cli.Uid, true);
                }
                catch (Exception)
                {
                }
            }
        }
        private void Cards(Set10ExchangeLoyClient client, List <CardsCompositions> cardComposition, IDbTransaction transaction, NpgsqlConnection dbConnection)
        {
            foreach (var card in cardComposition)
            {
                var set10Card = new CardCards(card.MasterCard.Set10Guid.Value, DateTime.Now.Date, 0, null, DateTime.Now.Date, false, DateTime.Parse("01-01-2021"), card.MasterCard.Set10Guid.Value, card.MasterCard.CardNumber, (card.MasterCard.IsBlocked == false ? 0 : 2), string.Empty, 2059, client.Set10Guid, null, null, null, String.Empty);
                if (card.CardById == null && card.CardByNumCard != null)
                {
                    DbPg.DeleteCardByNumCard(set10Card, dbConnection, transaction);
                }
                if (card.CardById == null)
                {
                    DbPg.InsertCard(set10Card, card.MasterCard.BonusAccountId, dbConnection, transaction);
                }
                else
                {
                    DbPg.UpdateCard(set10Card, dbConnection, transaction);
                }

                if (card.CardById?.Clientid == null)
                {
                    DbPg.UpdateCardClientIdIEmpty(set10Card, dbConnection, transaction);
                }
            }
        }
        //private bool CheckIdentityCard(CardsCompositions cardCompot)
        //{
        //    if (cardCompot.CardById.)
        //    return false;
        //}

        private void BonusAccounts(Set10ExchangeLoyClient client, IDbTransaction transaction, NpgsqlConnection dbConnection)
        {
            DbPg.InsertBonusAccount(client.BonusAccountId, client.BonusAccountId, dbConnection, transaction);
        }
示例#8
0
        private void C_SelectedClientInfoEvent1(object sender, SelectedClientInfoEventArgs e)
        {
            var fullClient = DbMs.GetClientFullInfo((Set10ExchangeLoyClient)e.Client.Clone());

            fullClient.Ammounts = new ObservableCollection <Set10ExchangeLoyAmmounts>(DbPg.GetBonus(fullClient.Client));
            var currentClient = new ClientInfoTabItemViewModel(fullClient);

            AddItem(currentClient);
        }