예제 #1
0
        public void ImportOrder_WithServiceFlagAndNoNewServices_ShouldAddTwoServices()
        {
            var order = new Order()
            {
                Id = "1", TrackingId = "TestOrder", ServiceFlag = 3, IsInternational = false
            };
            var transferee = new TransfereeDto()
            {
                Email = "*****@*****.**"
            };
            var consultant = new ConsultantDto()
            {
                SeContactUid = 1
            };
            var programManager = new ProgramManagerDto()
            {
                SeContactUid = 1
            };
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto = new ManagerDto
            {
                SeContactUid = 1
            };
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);
            _mockTransfereesRepository.Setup(t => t.GetTransfereeByEmail(transferee.Email)).Returns(new Transferee()
            {
                Email = "*****@*****.**"
            });
            _mockConsultantsRepository.Setup(c => c.GetConsultantBySeContactUid(1)).Returns(new Consultant()
            {
                SeContactUid = 1
            });

            var cats = new List <ServiceCategory>();
            var ids  = new List <int>();

            _mockServiceTypeRepository.Setup(st => st.GetDefaultServiceTypes(cats, ids, order.IsInternational)).Returns(new List <ServiceType>());

            var orderDto = new OrderDto();

            orderDto.Consultant     = consultant;
            orderDto.Transferee     = transferee;
            orderDto.ProgramManager = programManager;
            _mockMapper.Setup(o => o.Map <OrderDto, Order>(It.IsAny <OrderDto>())).Returns(order);
            _orderImporter.ImportOrder(orderDto);
            _mockOrdersRepository.Verify(v => v.Add(It.IsAny <Order>()), Times.Once);

            order.Services.Count.Should().Be(0);
        }
예제 #2
0
        public async Task ImportManagers_OneNewManager_CallsAddOnlyOnce()
        {
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto1 = new ManagerDto()
            {
                SeContactUid = 1234
            };
            var managerDto2 = new ManagerDto();
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto1, managerDto2
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1234)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);

            await _importer.ImportManagers(managersDto);

            _mockManagersRepository.Verify(m => m.Add(It.IsAny <Manager>(), It.IsAny <string>()), Times.Once);
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (tbFullNameManager.Text == "")
            {
                tbFullNameManager.BorderBrush = Brushes.Red;
            }
            if (tbPercent.Text == "")
            {
                tbPercent.BorderBrush = Brushes.Red;
            }
            if (tbPhone.Text == "")
            {
                tbPhone.BorderBrush = Brushes.Red;
            }
            if (dpDate.Text == "")
            {
                dpDate.BorderBrush = Brushes.Red;
            }
            try
            {
                if (Convert.ToDouble(tbPercent.Text) >= 100)
                {
                    MessageBox.Show("Процент от продаж не можетпревышить 100%.");
                    return;
                }
            }
            catch
            {
                return;
            }

            try
            {
                ManagersDto man = new ManagersDto();
                man.FullName      = tbFullNameManager.Text;
                man.Note          = tbNote.Text;
                man.PercentOnSale = (float)Convert.ToDouble(tbPercent.Text);
                man.Phone         = Convert.ToDouble(tbPhone.Text);
                man.StartDateWork = Convert.ToDateTime(dpDate.Text);

                IManagersProcessDb manager = ProcessFactory.GetManagersProcess();

                if (_id == 0)
                {
                    manager.Add(man);
                }
                else
                {
                    man.IDManager = _id;
                    manager.Update(man);
                }
            }
            catch
            {
                return;
            }
            Close();
        }
예제 #4
0
        public void ImportOrderTest_New()
        {
            var order = new Order()
            {
                Id = "1", TrackingId = "TestOrder"
            };
            var transferee = new TransfereeDto()
            {
                Email = "*****@*****.**"
            };
            var consultant = new ConsultantDto()
            {
                SeContactUid = 1
            };
            var programManager = new ProgramManagerDto()
            {
                SeContactUid = 1
            };
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto = new ManagerDto
            {
                SeContactUid = 1
            };
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);
            _mockTransfereesRepository.Setup(t => t.GetTransfereeByEmail(transferee.Email)).Returns(new Transferee()
            {
                Email = "*****@*****.**"
            });
            _mockConsultantsRepository.Setup(c => c.GetConsultantBySeContactUid(1)).Returns(new Consultant()
            {
                SeContactUid = 1
            });

            var orderDto = new OrderDto();

            orderDto.Consultant     = consultant;
            orderDto.Transferee     = transferee;
            orderDto.ProgramManager = programManager;
            _mockMapper.Setup(o => o.Map <OrderDto, Order>(It.IsAny <OrderDto>())).Returns(order);
            _orderImporter.ImportOrder(orderDto);
            _mockOrdersRepository.Verify(v => v.Add(It.IsAny <Order>()), Times.Once);
        }
        public void Load(ManagersDto man)
        {
            if (man == null)
            {
                return;
            }

            this._id = man.IDManager;
            tbFullNameManager.Text = man.FullName.ToString();
            tbPercent.Text         = man.PercentOnSale.ToString();
            tbPhone.Text           = man.Phone.ToString();
            tbNote.Text            = man.Note ?? "";
            dpDate.Text            = man.StartDateWork.ToString();

            dpDate.IsEnabled = false;
        }
예제 #6
0
        private void btnEditM_Click(object sender, RoutedEventArgs e)
        {
            ManagersDto item = dgManagers.SelectedItem as ManagersDto;

            if (item == null)
            {
                MessageBox.Show("Выберите запись для редактирования", "Редактирование");
                return;
            }

            AddManagerData window = new AddManagerData();

            window.Load(item);
            window.ShowDialog();
            btnUpdateM_Click(sender, e);
        }
예제 #7
0
        public async Task <IHttpActionResult> UpsertManagers(ManagersDto managersDto)
        {
            try
            {
                await _managerImporter.ImportManagers(managersDto);
            }
            catch (Exception e)
            {
                var ai = new TelemetryClient();
                ai.TrackException(e);
                return(InternalServerError(e));
            }


            return(Ok());
        }
예제 #8
0
        public static Managers Convert(ManagersDto managerDto)
        {
            if (managerDto == null)
            {
                return(null);
            }
            Managers manager = new Managers();

            manager.FullName      = managerDto.FullName;
            manager.IDManager     = managerDto.IDManager;
            manager.Note          = managerDto.Note;
            manager.PercentOnSale = managerDto.PercentOnSale;
            manager.Phone         = managerDto.Phone;
            manager.StartDateWork = managerDto.StartDateWork;
            return(manager);
        }
예제 #9
0
        public async Task ImportManagers_NewManager_AddsManager()
        {
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto  = new ManagerDto();
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);

            await _importer.ImportManagers(managersDto);

            _mockManagersRepository.Verify(m => m.Add(It.IsAny <Manager>(), It.IsAny <string>()), Times.Once);
        }
예제 #10
0
        public async Task ImportManagers_NewManager_AccountHelperSendsEmail()
        {
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto  = new ManagerDto();
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);

            await _importer.ImportManagers(managersDto);

            _mockAccountHelper.Verify(a => a.SendEmailCreateTokenAsync(It.IsAny <string>()), Times.Once);
        }
예제 #11
0
        //private void btnDeleteDebt_Click(object sender, RoutedEventArgs e)
        //{
        //    DebtDto item = dgDebt.SelectedItem as DebtDto;

        //    if (item == null)
        //    {
        //        MessageBox.Show("Выберите запись для удаления", "Удаление ремонта");
        //        return;
        //    }

        //    MessageBoxResult result = MessageBox.Show("Удалить ремонт от " + item.Enterprise + ", для станка " + item.Debt + "?", "Удаление ремонта", MessageBoxButton.YesNo, MessageBoxImage.Warning);

        //    if (result != MessageBoxResult.Yes)
        //        return;

        //    ProcessFactory.GetDebtProcess().Delete(item.IDDebt);

        //    btnUpdateDebt_Click(sender, e);
        //}

        private void btnDeleteM_Click(object sender, RoutedEventArgs e)
        {
            ManagersDto item = dgManagers.SelectedItem as ManagersDto;

            if (item == null)
            {
                MessageBox.Show("Выберите запись для удаления", "Удаление менеджера");
                return;
            }

            MessageBoxResult result = MessageBox.Show("Удалить менеджера " + item.FullName + "?", "Удаление менеджера", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            if (result != MessageBoxResult.Yes)
            {
                return;
            }

            ProcessFactory.GetManagersProcess().Delete(item.IDManager);

            btnUpdateM_Click(sender, e);
        }
예제 #12
0
        public async Task ImportManagers_ExistingManager_DoesNotAddManager()
        {
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto = new ManagerDto
            {
                SeContactUid = 1234
            };
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1234)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);

            await _importer.ImportManagers(managersDto);

            _mockManagersRepository.Verify(m => m.Add(It.IsAny <Manager>(), It.IsAny <string>()), Times.Never);
        }
예제 #13
0
        public async Task ImportManagers(ManagersDto managersDto)
        {
            foreach (var managerDto in managersDto.Managers)
            {
                try
                {
                    var manager = _unitOfWork.Managers.GetManagerBySeContactUid(managerDto.SeContactUid);

                    if (manager == null)
                    {
                        manager = _mapper.Map <ManagerDto, Manager>(managerDto);
                        _unitOfWork.Managers.Add(manager, managerDto.Role);
                        await _accountHelper.SendEmailCreateTokenAsync(manager.Id);
                    }
                }
                // Track the exception but keep processing records.
                catch (Exception e)
                {
                    _telemetryClient.TrackException(e);
                }
            }

            _unitOfWork.Complete();
        }
예제 #14
0
 public void Add(ManagersDto artist)
 {
     _managerDao.Add(DtoConvert.Convert(artist));
 }
예제 #15
0
 public void Update(ManagersDto manager)
 {
     _managerDao.Update(DtoConvert.Convert(manager));
 }
예제 #16
0
        public void fillExcelTableByType(IEnumerable <object> grid, string status, FileInfo xlsxFile)
        {
            try
            {
                if (grid != null)
                {
                    ExcelPackage pck   = new ExcelPackage(xlsxFile);
                    var          excel = pck.Workbook.Worksheets.Add(status);
                    int          x     = 1;
                    int          y     = 1;

                    CultureInfo cultureInfo = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
                    Thread.CurrentThread.CurrentCulture             = cultureInfo;
                    cultureInfo.NumberFormat.NumberDecimalSeparator = ".";
                    excel.Cells["A1:Z1"].Style.Font.Bold            = true;
                    excel.Cells.Style.HorizontalAlignment           = ExcelHorizontalAlignment.Left;
                    excel.Cells.Style.Numberformat.Format           = "General";

                    Object dtObj = new Object();

                    switch (status)
                    {
                    case "Managers": dtObj = new ManagersDto(); break;

                    case "Enterprises": dtObj = new EnterprisesDto(); break;

                    case "TypeReklama": dtObj = new TypeReklamaDto(); break;

                    case "Orders": dtObj = new OrdersDto(); break;

                    case "Carrier": dtObj = new CarrierDto(); break;

                    case "Wage": dtObj = new WageDto(); break;
                    }
                    foreach (var prop in dtObj.GetType().GetProperties())
                    {
                        excel.Cells[y, x].Value = prop.Name.Trim();
                        x++;
                    }
                    foreach (var item in grid)
                    {
                        y++;
                        Object itemObj = item;
                        x = 1;
                        foreach (var prop in itemObj.GetType().GetProperties())
                        {
                            object t = prop.GetValue(itemObj, null);
                            object val;

                            if (t == null)
                            {
                                val = "";
                            }
                            else
                            {
                                val = t.ToString();
                                if (t is ManagersDto)
                                {
                                    val = ((ManagersDto)t).FullName;
                                }

                                if (t is EnterprisesDto)
                                {
                                    val = ((EnterprisesDto)t).NameEnterprise;
                                }

                                if (t is CarrierDto)
                                {
                                    val = ((CarrierDto)t).NameCarrier;
                                }

                                if (t is TypeReklamaDto)
                                {
                                    val = ((TypeReklamaDto)t).NameReklama;
                                }
                            }
                            excel.Cells[y, x].Value = val;
                            x++;
                        }
                    }
                    excel.Cells.AutoFitColumns();
                    pck.Save();
                }
                else
                {
                    MessageBox.Show("Данные не загружены!");
                }
            }
            catch (Exception exc)
            {
                // MessageBox.Show(exc.Message, "Ошибка");
            }
        }
예제 #17
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (tbPaid.Text == "")
            {
                tbPaid.BorderBrush = Brushes.Red;
            }
            if (tbSum.Text == "")
            {
                tbSum.BorderBrush = Brushes.Red;
            }
            if (dpFinallyDate.Text == "")
            {
                dpFinallyDate.BorderBrush = Brushes.Red;
            }
            if (dpStartDate.Text == "")
            {
                dpStartDate.BorderBrush = Brushes.Red;
            }
            if (cbEnterprise.Text == "")
            {
                cbEnterprise.BorderBrush = Brushes.Red;
            }
            if (cbManager.Text == "")
            {
                cbManager.BorderBrush = Brushes.Red;
            }
            if (cbReklama.Text == "")
            {
                cbReklama.BorderBrush = Brushes.Red;
            }
            try
            {
                if ((Convert.ToDouble(tbAllSum.Text) - Convert.ToDouble(tbPaid.Text) < 0))
                {
                    MessageBox.Show("Цена превышает размер " + tbAllSum.Text + " рублей.");
                    return;
                }
            }
            catch
            {
            }
            try
            {
                if (Convert.ToDateTime(dpStartDate.Text) > Convert.ToDateTime(dpFinallyDate.Text))
                {
                    MessageBox.Show("Дата начала размещения рекламы не должна быть позже даты окончания рекламы.");
                    return;
                }
            }
            catch
            {
            }

            try
            {
                OrdersDto or = new OrdersDto();
                or.Cost = (float)Convert.ToDouble(this.tbSum.Text);
                if (tbPaid.Text == "")
                {
                    or.Paid = 0;
                }
                else
                {
                    or.Paid = (float)Convert.ToDouble(this.tbPaid.Text);
                }
                or.FinallyDate     = Convert.ToDateTime(this.dpFinallyDate.Text);
                or.FullNameManager = this.cbManager.SelectedItem as ManagersDto;
                or.NameEnterprise  = this.cbEnterprise.SelectedItem as EnterprisesDto;
                or.StartDate       = Convert.ToDateTime(this.dpStartDate.Text);
                or.TypeReklama     = this.cbReklama.SelectedItem as TypeReklamaDto;

                int d1   = IntFromDMY(or.StartDate.Day, or.StartDate.Month, or.StartDate.Year);
                int d2   = IntFromDMY(or.FinallyDate.Day, or.FinallyDate.Month, or.FinallyDate.Year);
                int ddif = d2 - d1;

                if (or.TypeReklama.CarrierForReklama.TimeCarrier == "День")
                {
                    int t = 0;
                    if ((ddif / 30) == 0)
                    {
                        t = 1;
                    }
                    or.AllSum = (float)Math.Round(or.Cost * (ddif / 1), 0);
                }
                else if (or.TypeReklama.CarrierForReklama.TimeCarrier == "Неделя")
                {
                    int t = 0;
                    if ((ddif / 30) == 0)
                    {
                        t = 1;
                    }
                    or.AllSum = (float)Math.Round(or.Cost * (ddif / 7));
                }
                else
                {
                    int t = 0;
                    if ((ddif / 30) == 0)
                    {
                        t = 1;
                    }
                    or.AllSum = (float)Math.Round(or.Cost * t);
                }

                or.Debt = (float)Convert.ToDouble(or.AllSum) - (float)Convert.ToDouble(this.tbPaid.Text);

                IOrdersProcessDb orProcess   = ProcessFactory.GetOrdersProcess();
                IWageProcessDb   wageProcess = ProcessFactory.GetWageProcess();

                if (wageProcess.Get(or.FullNameManager.IDManager) == null)
                {
                    WageDto            wage    = new WageDto();
                    IManagersProcessDb mp      = ProcessFactory.GetManagersProcess();
                    ManagersDto        manager = mp.Get(or.FullNameManager.IDManager);
                    wage.CurrentSum = or.Cost * manager.PercentOnSale / 100;
                    wage.Manager    = or.FullNameManager;
                    wage.Paid       = 0;
                    wage.Rest       = (float)Math.Abs(Convert.ToDouble(wage.Paid - wage.CurrentSum));
                    wage.SumOrders  = 1;

                    wageProcess.Add(wage);
                }
                else
                {
                    IManagersProcessDb mp       = ProcessFactory.GetManagersProcess();
                    ManagersDto        manager  = mp.Get(or.FullNameManager.IDManager);
                    IWageProcessDb     wProcess = ProcessFactory.GetWageProcess();

                    WageDto wage = wProcess.Get(or.FullNameManager.IDManager);
                    wage.CurrentSum += or.Cost * manager.PercentOnSale / 100;
                    wage.Rest        = (float)Math.Abs(Convert.ToDouble(wage.Paid - wage.CurrentSum));
                    wage.SumOrders  += 1;

                    wageProcess.Update(wage);
                }

                if (_id == 0)
                {
                    orProcess.Add(or);
                }
                else
                {
                    or.IDOrder = _id;
                    orProcess.Update(or);
                }
            }
            catch (Exception exc)
            {
                return;
            }

            this.Close();
        }