示例#1
0
        public async static Task <FilterViewModel> CreateWithFilter(
            FilterViewModel model,
            ICompanyWorkData comapnyWorkData,
            IMapper mapper)
        {
            var inquiries = await GetInquiriesAsync(comapnyWorkData, x => model.From <= x.ReceivedAt && model.To >= x.ReceivedAt);

            var customers = inquiries.Select(x => x.Customer).Distinct();
            var assignees = inquiries.Select(x => x.Assignees.Select(e => e.Employee)).SelectMany(a => a).Distinct();

            if (!string.IsNullOrEmpty(model.CustomerId) && !string.IsNullOrWhiteSpace(model.CustomerId))
            {
                inquiries = inquiries.Where(x => model.CustomerId == x.CustomerId);
            }

            if (!string.IsNullOrEmpty(model.AssigneeId) && !string.IsNullOrWhiteSpace(model.AssigneeId))
            {
                inquiries = inquiries.Where(x => x.Assignees.Any(a => model.AssigneeId == a.EmployeeId));
            }

            return(new FilterViewModel()
            {
                Customers = mapper.Map <IEnumerable <Company>, IEnumerable <CompanyViewModel> >(customers),
                Inquiries = mapper.Map <IEnumerable <Inquiry>, IEnumerable <InquiryViewModel> >(inquiries),
                Assignees = mapper.Map <IEnumerable <Employee>, IEnumerable <EmployeeViewModel> >(assignees)
            });
        }
示例#2
0
 public HomeController(
     ICompanyWorkData companyWorkData,
     ISchedulerWorkData schedulerWorkData,
     IAccountingWorkData accountingWorkData,
     IMapper mapper,
     ILoggerFactory loggerFactory)
     : base(companyWorkData, schedulerWorkData, accountingWorkData, mapper)
 {
     this.logger = loggerFactory.CreateLogger <HomeController>();
 }
示例#3
0
 public async static Task <RegisterViewModel> CreateAsync(
     RoleManager <ApplicationRole> roleManager,
     ICompanyWorkData companyWorkData)
 {
     return(new RegisterViewModel()
     {
         User = RegisterUserViewModel.Create(roleManager),
         Employees = await CreateEmployeesDropDownList(companyWorkData)
     });
 }
示例#4
0
 public BaseController(
     ICompanyWorkData companyWorkData,
     ISchedulerWorkData schedulerWorkData,
     IAccountingWorkData accountingWorkData,
     IMapper mapper)
 {
     this.CompanyWorkData    = companyWorkData;
     this.SchedulerWorkData  = schedulerWorkData;
     this.AccountingWorkData = accountingWorkData;
     this.Mapper             = mapper;
 }
示例#5
0
        public async static Task <RegisterViewModel> ReBuildAsync(
            RegisterViewModel model,
            RoleManager <ApplicationRole> roleManager,
            UserManager <ApplicationUser> userManager,
            ICompanyWorkData companyWorkData)
        {
            model.User      = RegisterUserViewModel.ReBuild(model.User, roleManager);
            model.Employees = await CreateEmployeesDropDownList(companyWorkData);

            return(model);
        }
示例#6
0
 private static async Task <IEnumerable <Inquiry> > GetInquiriesAsync(
     ICompanyWorkData comapnyWorkData, Expression <Func <Inquiry, bool> > predicate)
 {
     return(await comapnyWorkData.Inquiries.FindAsync(predicate, i => i
                                                      .Include(x => x.ReceivedBy)
                                                      .Include(x => x.Assignees)
                                                      .ThenInclude(e => e.Employee)
                                                      .Include(x => x.Customer)
                                                      .Include(x => x.InfoRequests)
                                                      .Include(x => x.Attachments)
                                                      .Include(x => x.Offers)));
 }
示例#7
0
 public ControlPanelController(
     ICompanyWorkData companyWorkData,
     UserManager <ApplicationUser> userManager,
     RoleManager <ApplicationRole> roleManager,
     ILoggerFactory loggerFactory,
     IMapper mapperr,
     IEventsFactory eventsFactory)
     : base(companyWorkData, mapperr, eventsFactory)
 {
     this.userManager = userManager;
     this.roleManager = roleManager;
     this.logger      = loggerFactory.CreateLogger <ControlPanelController>();
 }
示例#8
0
        public async static Task <CreateViewModel> CreateAsync(ICompanyWorkData companyWorkData, IMapper mapper)
        {
            var settings = await companyWorkData.Settings.GetAllAsync(i => i
                                                                      .Include(x => x.HomeCompany)
                                                                      .ThenInclude(x => x.Employees));

            var company   = settings.FirstOrDefault().HomeCompany;
            var customers = await companyWorkData.Companies.FindAsync(x => x.Id != company.Id);

            return(new CreateViewModel()
            {
                Customers = mapper.Map <IEnumerable <Company>, IEnumerable <CompanyViewModel> >(customers),
                Assignees = mapper.Map <IEnumerable <Employee>, IEnumerable <EmployeeViewModel> >(company.Employees)
            });
        }
示例#9
0
        public static async Task <FilterViewModel> ReBuild(
            FilterViewModel model,
            ICompanyWorkData comapnyWorkData,
            IMapper mapper)
        {
            var inquiries = await GetInquiriesAsync(comapnyWorkData, x => true);

            var customers = inquiries.Select(x => x.Customer).Distinct();
            var assignees = inquiries.Select(x => x.Assignees.Select(e => e.Employee)).SelectMany(a => a).Distinct();

            model.Customers = mapper.Map <IEnumerable <Company>, IEnumerable <CompanyViewModel> >(customers);
            model.Inquiries = mapper.Map <IEnumerable <Inquiry>, IEnumerable <InquiryViewModel> >(inquiries);
            model.Assignees = mapper.Map <IEnumerable <Employee>, IEnumerable <EmployeeViewModel> >(assignees);

            return(model);
        }
示例#10
0
 public AccountController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IOptions <IdentityCookieOptions> identityCookieOptions,
     IEmailSender emailSender,
     ISmsSender smsSender,
     ILoggerFactory loggerFactory,
     IMapper mapper,
     ICompanyWorkData companyWorkData)
 {
     this.userManager          = userManager;
     this.signInManager        = signInManager;
     this.externalCookieScheme = identityCookieOptions.Value.ExternalCookieAuthenticationScheme;
     this.logger          = loggerFactory.CreateLogger <AccountController>();
     this.mapper          = mapper;
     this.companyWorkData = companyWorkData;
 }
示例#11
0
 public InstallController(
     UserManager <ApplicationUser> userManager,
     RoleManager <ApplicationRole> roleManager,
     ICompanyWorkData companyWorkData,
     ISchedulerWorkData schedulerWorkData,
     IAccountingWorkData accountingWorkData,
     IMapper mapper,
     ILoggerFactory loggerFactory,
     IDatabaseSeeder dataSeeder,
     IRolesSeder rolesSeeder,
     IServiceScopeFactory services,
     IEventsFactory eventsFactory)
     : base(companyWorkData, schedulerWorkData, accountingWorkData, mapper)
 {
     this.userManager   = userManager;
     this.roleManager   = roleManager;
     this.dataSeeder    = dataSeeder;
     this.rolesSeeder   = rolesSeeder;
     this.services      = services;
     this.eventsFactory = eventsFactory;
     this.logger        = loggerFactory.CreateLogger <InstallController>();
 }
示例#12
0
 public AdminBaseController(ICompanyWorkData companyWorkData, IMapper mapper, IEventsFactory eventsFactory)
 {
     this.CompanyWorkData = companyWorkData;
     this.Mapper          = mapper;
     this.EventsFactory   = eventsFactory;
 }
示例#13
0
        private static async Task <List <SelectListItem> > CreateEmployeesDropDownList(ICompanyWorkData companyWorkData)
        {
            var employees = await companyWorkData.Employees.GetAllAsync();

            return(employees.Select(x => new SelectListItem
            {
                Text = x.GetName(),
                Value = x.Id
            }).ToList());
        }
示例#14
0
 public Repository(ICompanyWorkData context)
 {
     this.Context  = context;
     this.entities = this.Context.Set <TEntity>();
 }
示例#15
0
 public CompanyBaseController(ICompanyWorkData companyWorkData, IMapper mapper)
 {
     this.CompanyWorkData = companyWorkData;
     this.Mapper          = mapper;
 }
示例#16
0
 public InquiriesController(ICompanyWorkData companyWorkData, IMapper mapper)
     : base(companyWorkData, mapper)
 {
 }
示例#17
0
 public HomeController(ICompanyWorkData companyWorkData, IMapper mapper)
     : base(companyWorkData, mapper)
 {
 }