示例#1
0
        public async Task <string> ExportDataToExcelAsync([FromBody] LeadGetAllRequest request, uint?page = null, uint?pageSize = null)
        {
            Uri      fileUrl;
            TimeSpan timeZoneOffset = TimeSpan.Zero;
            string   fileName       = $"TestDrive-Leads-{DateTime.UtcNow.FormatUtcDateTimeToUserFriendlyString(timeZoneOffset, "yyyyMMddHHmmss")}";
            string   worksheetsName = "leads";

            using (var uow = UowManager.CurrentOrCreateNew(true))
            {
                ExcelExportSettings <Lead> settings = new ExcelExportSettings <Lead>(
                    fileName, worksheetsName,
                    DomainService, ContentManager,
                    ExcelExportLeadOptionsProvider.GetEntityOptions((r) => r.UseByDefault, (key) => key, timeZoneOffset),
                    BuildRetrieveManyFilter(request), request.Sorting, page ?? 0 * pageSize ?? 0, pageSize);
                fileUrl = await ExcelExportService <Lead> .ExportDataAsync(settings);
            }
            return(fileUrl.ToString());
        }
示例#2
0
 protected virtual Expression <Func <Lead, bool> > BuildRetrieveManyFilter(LeadGetAllRequest request)
 {
     return((entity) =>
            (!request.UserId.HasValue || request.UserId.Value == entity.Site.UserId) &&
            (!request.SiteId.HasValue || request.SiteId.Value == entity.SiteId) &&
            (!request.ExpertId.HasValue || request.ExpertId.Value == entity.ExpertId) &&
            (!request.RouteId.HasValue || request.RouteId.Value == entity.RouteId) &&
            (!request.BeverageId.HasValue || request.BeverageId.Value == entity.BeverageId) &&
            (!request.RecievedDateTimeUtc.HasValue || request.RecievedDateTimeUtc.Value <= entity.RecievedUtc) &&
            (!request.BookingDateTimeUtc.HasValue || request.BookingDateTimeUtc.Value <= entity.BookingDateTimeUtc) &&
            (!request.IsReachedByManager.HasValue || request.IsReachedByManager.Value == entity.IsReachedByManager) &&
            (String.IsNullOrEmpty(request.FullName) || !String.IsNullOrEmpty(entity.FullName) && entity.FullName.ToUpper().Contains(request.FullName.ToUpper())) &&
            (String.IsNullOrEmpty(request.FirstName) || !String.IsNullOrEmpty(entity.FirstName) && entity.FirstName.ToUpper().Contains(request.FirstName.ToUpper())) &&
            (String.IsNullOrEmpty(request.SecondName) || !String.IsNullOrEmpty(entity.SecondName) && entity.SecondName.ToUpper().Contains(request.SecondName.ToUpper())) &&
            (String.IsNullOrEmpty(request.Site) || !String.IsNullOrEmpty(entity.Site.Name) && entity.Site.Name.ToUpper().Contains(request.Site.ToUpper())) &&
            (String.IsNullOrEmpty(request.Email) || !String.IsNullOrEmpty(entity.UserEmail) && entity.UserEmail.ToUpper().Contains(request.Email.ToUpper())) &&
            (String.IsNullOrEmpty(request.Phone) || !String.IsNullOrEmpty(entity.UserPhone) && entity.UserPhone.Contains(request.Phone)) &&
            (String.IsNullOrEmpty(request.Expert) || !String.IsNullOrEmpty(entity.Expert.Name) && entity.Expert.Name.ToUpper().Contains(request.Expert.ToUpper())) &&
            (String.IsNullOrEmpty(request.Route) || !String.IsNullOrEmpty(entity.Route.Name) && entity.Route.Name.ToUpper().Contains(request.Route.ToUpper())) &&
            (String.IsNullOrEmpty(request.Beverage) || !String.IsNullOrEmpty(entity.Beverage.Name) && entity.Beverage.Name.ToUpper().Contains(request.Beverage.ToUpper())));
 }
示例#3
0
 public Task <GetAllResponse <LeadDto> > GetAllAsync([FromBody] LeadGetAllRequest request, uint page = 0, uint pageSize = 0)
 {
     return(InnerGetAllAsync(BuildRetrieveManyFilter(request), request.Sorting, page, pageSize));
 }