예제 #1
0
        private void CreateNewClient(Background.SyncRonService.Model.Contragent.Client client)
        {
            var userInfos = _context.Set <UserInfo>()
                            .Where(x => x.UserId != 1 && x.UserId != 11)
                            .ToList();

            if (client != null)
            {
                NumberOfCalls numberOfCalls = client.Periodichnost_Zvonkov == "0" ? NumberOfCalls.WithoutType : client.Periodichnost_Zvonkov == "10" ? NumberOfCalls.OnePerMonth : client.Periodichnost_Zvonkov == "20"
                            ? NumberOfCalls.OnePerTwoWeek : client.Periodichnost_Zvonkov == "30" ? NumberOfCalls.ThreePerMonth : client.Periodichnost_Zvonkov == "40" ? NumberOfCalls.OnePerWeek : client.Periodichnost_Zvonkov == "50" ?
                                              NumberOfCalls.FivePerMonth : client.Periodichnost_Zvonkov == "60" ? NumberOfCalls.SixPerMonth : client.Periodichnost_Zvonkov == "90" ? NumberOfCalls.TwoPerWeek : NumberOfCalls.WithoutType;

                NumberOfShipments numberOfShipments = client.Periodichnost_Otgruzok == "0" ? NumberOfShipments.WithoutType : client.Periodichnost_Zvonkov == "10" ? NumberOfShipments.OnePerMonth : client.Periodichnost_Zvonkov == "20"
                   ? NumberOfShipments.OnePerTwoWeek : client.Periodichnost_Zvonkov == "30" ? NumberOfShipments.ThreePerMonth : client.Periodichnost_Zvonkov == "40" ? NumberOfShipments.OnePerWeek : client.Periodichnost_Zvonkov == "50" ?
                                                      NumberOfShipments.FivePerMonth : client.Periodichnost_Zvonkov == "60" ? NumberOfShipments.SixPerMonth : client.Periodichnost_Zvonkov == "90" ? NumberOfShipments.TwoPerWeek : NumberOfShipments.WithoutType;
                ClientGroup clientGroup = ClientGroup.NewOrReanimated;

                if (this.client1 != null)
                {
                    numberOfCalls     = this.client1.NumberOfCalls;
                    numberOfShipments = this.client1.NumberOfShipments;
                    clientGroup       = this.client1.Group;
                }

                Data.Entities.Clients.Client client1 = _context.Set <Client>()
                                                       .Add(new Client(new ClientCreate()
                {
                    ClientType        = ClientTypes.Middle1,
                    Title             = client.Contragent,
                    LegalEntity       = client.Contragent_NameFull,
                    NumberOfCalls     = numberOfCalls,
                    NumberOfShipments = numberOfShipments,
                    Group             = clientGroup
                })).Entity;
                client1.IsAcctive = true;
                _context.Set <Client>().Add(client1);
                _context.SaveChanges();
                ClientInfo clientInfo = _context.Set <ClientInfo>()
                                        .Add(new ClientInfo(client1.Id, Guid.Parse(client.Contragent_ID), client.Phones)).Entity;
                _context.SaveChanges();
                if (client.GR_Contragent != "" && _context.Set <ClientGR>().FirstOrDefault(c => c.NameGr == client.GR_Contragent) == null)
                {
                    _context.Set <ClientGR>().Add(new ClientGR()
                    {
                        Clients = new List <Data.Entities.Clients.Client>()
                        {
                            client1
                        },
                        NameGr = client.GR_Contragent
                    });
                }
                else if (client.GR_Contragent != "")
                {
                    _context.Set <ClientGR>().FirstOrDefault(c => c.NameGr == client.GR_Contragent).Clients.Add(client1);
                }
                _context.SaveChanges();
                if (client.Manager_ID != null && client.Manager_ID != "")
                {
                    var managersGuidStr = client.Manager_ID.Split(',');
                    var managersGuid    = new List <Guid>();
                    foreach (var str in managersGuidStr)
                    {
                        try
                        {
                            managersGuid.Add(Guid.Parse(str));
                        }
                        catch
                        {
                        }
                    }
                    foreach (Guid guid in managersGuid)
                    {
                        var userInfo = userInfos.FirstOrDefault(x => x.OneCId == guid);
                        if (userInfo != null)
                        {
                            var workGroup = _context.Set <WorkGroup>()
                                            .FirstOrDefault(x => x.RegionalManagerId == userInfo.UserId ||
                                                            x.EscortManagerId == userInfo.UserId);
                            if (workGroup != null && workGroup.Clients.FirstOrDefault(c => c.ClientId == clientInfo.ClientId) == null)
                            {
                                workGroup.BindClient(new BindClient()
                                {
                                    ClientId    = client1.Id,
                                    WorkgroupId = workGroup.Id
                                });
                            }
                        }
                    }
                }
                _context.SaveChanges();
                if (client.Phones != null && client.Phones != "")
                {
                    var e            = client.Phones.Split(',');
                    var clientPhones = _context.Set <ClientPhone>().Where(c => c.ClientId == clientInfo.ClientId);
                    foreach (var phone in e)
                    {
                        string newPhone = Regex.Replace(phone, @"[^0-9]", "");
                        if (clientPhones == null || clientPhones.FirstOrDefault(c => c.Phone != null && (c.Phone == newPhone || c.Phone == newPhone.Substring(1) || c.Phone == newPhone.Substring(2))) == null)
                        {
                            ClientPhone clientPhone = new ClientPhone()
                            {
                                Client = client1,
                                Phone  = newPhone,
                            };
                            //if (newPhone.Length == 10)
                            //{
                            //}
                            //else if (newPhone.Length == 11)
                            //{
                            //    newPhone = newPhone.Substring(1);
                            //    clientPhone = new ClientPhone()
                            //    {
                            //        Client = client1,
                            //        Phone = newPhone,
                            //    };
                            //}
                            //else if (newPhone.Length == 12)
                            //{
                            //    newPhone = newPhone.Substring(2);
                            //    clientPhone = new ClientPhone()
                            //    {
                            //        Client = client1,
                            //        Phone = newPhone,
                            //    };
                            //}
                            _context.Set <ClientPhone>().Add(clientPhone);
                            _context.SaveChanges();
                        }
                    }
                }
            }
        }
예제 #2
0
        private async void ReloadClients(string id)
        {
            await Task.Delay(10000);

            Background.SyncRonService.Model.Contragent.Client client = GetConterAgents(id).FirstOrDefault(c => c.Contragent_ID == id);
            _context = new ApplicationContext();
            List <ClientContact> clientContacts1 = _context.Set <ClientContact>().ToList();
            ClientInfo           clientInfo      = _context.Set <ClientInfo>().FirstOrDefault(c => c.OneCId.ToString() == id);

            try
            {
                if (client != null)
                {
                    if (clientInfo != null)
                    {
                        if (_context.Set <Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId) != null)
                        {
                            client1 = _context.Set <Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId);
                            _context.Set <Client>().Remove(_context.Set <Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId));
                        }
                        if (_context.Set <ClientPhone>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                        {
                            _context.Set <ClientPhone>().RemoveRange(_context.Set <ClientPhone>().Where(c => c.ClientId == clientInfo.ClientId));
                        }
                        if (_context.Set <CallClient>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                        {
                            _context.Set <CallClient>().RemoveRange(_context.Set <CallClient>().Where(c => c.ClientId == clientInfo.ClientId));
                        }
                        if (_context.Set <ClientContact>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                        {
                            _context.Set <ClientContact>().RemoveRange(_context.Set <ClientContact>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId));
                        }
                        _context.Set <ClientInfo>().Remove(clientInfo);
                        _context.SaveChanges();
                        clientContacts1 = _context.Set <ClientContact>().ToList();
                        CreateNewClient(client);
                    }
                    else
                    {
                        CreateNewClient(client);
                    }
                    ReloadClientsCalls(id);
                }
                else
                {
                    if (_context.Set <Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId) != null)
                    {
                        _context.Set <Client>().Remove(_context.Set <Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId));
                    }
                    if (_context.Set <ClientPhone>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                    {
                        _context.Set <ClientPhone>().RemoveRange(_context.Set <ClientPhone>().Where(c => c.ClientId == clientInfo.ClientId));
                    }
                    if (_context.Set <CallClient>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                    {
                        _context.Set <CallClient>().RemoveRange(_context.Set <CallClient>().Where(c => c.ClientId == clientInfo.ClientId));
                    }
                    if (_context.Set <ClientContact>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId) != null)
                    {
                        _context.Set <ClientContact>().RemoveRange(_context.Set <ClientContact>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId));
                    }
                    _context.Set <ClientInfo>().Remove(clientInfo);
                    //_context.Set<Data.Entities.OneCInfo.ClientInfo>().RemoveRange(_context.Set<Data.Entities.OneCInfo.ClientInfo>().FirstOrDefault(c => c.ClientId == clientInfo.ClientId));
                    //_context.Set<Data.Entities.Clients.Client>().RemoveRange(_context.Set<Data.Entities.Clients.Client>().FirstOrDefault(c => c.Id == clientInfo.ClientId));
                    //_context.Set<Data.Entities.Clients.ClientPhone>().RemoveRange(_context.Set<Data.Entities.Clients.ClientPhone>().Where(c => c.ClientId == clientInfo.ClientId));
                    //_context.Set<CallClient>().RemoveRange(_context.Set<CallClient>().Where(c => c.ClientId == clientInfo.ClientId));
                    //_context.Set<ClientContact>().RemoveRange(_context.Set<ClientContact>().Where(c => c.ClientId == clientInfo.ClientId));
                    _context.SaveChanges();
                }
            }
            catch (Exception e)
            {
            }
        }