Ejemplo n.º 1
0
        public async Task <int> Count(PlaceCheckingFilter filter)
        {
            IQueryable <PlaceCheckingDAO> PlaceCheckings = DataContext.PlaceChecking.AsNoTracking();

            PlaceCheckings = DynamicFilter(PlaceCheckings, filter);
            return(await PlaceCheckings.CountAsync());
        }
        public async Task <ActionResult <bool> > BulkDelete([FromBody] List <long> Ids)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter();

            PlaceCheckingFilter = await PlaceCheckingService.ToFilter(PlaceCheckingFilter);

            PlaceCheckingFilter.Id = new IdFilter {
                In = Ids
            };
            PlaceCheckingFilter.Selects = PlaceCheckingSelect.Id;
            PlaceCheckingFilter.Skip    = 0;
            PlaceCheckingFilter.Take    = int.MaxValue;

            List <PlaceChecking> PlaceCheckings = await PlaceCheckingService.List(PlaceCheckingFilter);

            PlaceCheckings = await PlaceCheckingService.BulkDelete(PlaceCheckings);

            if (PlaceCheckings.Any(x => !x.IsValidated))
            {
                return(BadRequest(PlaceCheckings.Where(x => !x.IsValidated)));
            }
            return(true);
        }
Ejemplo n.º 3
0
        public async Task <List <Tracking_PlaceCheckingDTO> > FilterListPlaceChecking([FromBody] Tracking_PlaceCheckingFilterDTO Tracking_PlaceCheckingFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter();

            PlaceCheckingFilter.Skip                  = 0;
            PlaceCheckingFilter.Take                  = 20;
            PlaceCheckingFilter.OrderBy               = PlaceCheckingOrder.Id;
            PlaceCheckingFilter.OrderType             = OrderType.ASC;
            PlaceCheckingFilter.Selects               = PlaceCheckingSelect.ALL;
            PlaceCheckingFilter.Id                    = Tracking_PlaceCheckingFilterDTO.Id;
            PlaceCheckingFilter.AppUserId             = Tracking_PlaceCheckingFilterDTO.AppUserId;
            PlaceCheckingFilter.PlaceId               = Tracking_PlaceCheckingFilterDTO.PlaceId;
            PlaceCheckingFilter.PlaceCheckingStatusId = Tracking_PlaceCheckingFilterDTO.PlaceCheckingStatusId;
            PlaceCheckingFilter.CheckInAt             = Tracking_PlaceCheckingFilterDTO.CheckInAt;
            PlaceCheckingFilter.CheckOutAt            = Tracking_PlaceCheckingFilterDTO.CheckOutAt;

            List <PlaceChecking> PlaceCheckings = await PlaceCheckingService.List(PlaceCheckingFilter);

            List <Tracking_PlaceCheckingDTO> Tracking_PlaceCheckingDTOs = PlaceCheckings
                                                                          .Select(x => new Tracking_PlaceCheckingDTO(x)).ToList();

            return(Tracking_PlaceCheckingDTOs);
        }
Ejemplo n.º 4
0
 public async Task <PlaceCheckingFilter> ToFilter(PlaceCheckingFilter filter)
 {
     if (filter.OrFilter == null)
     {
         filter.OrFilter = new List <PlaceCheckingFilter>();
     }
     if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0)
     {
         return(filter);
     }
     foreach (var currentFilter in CurrentContext.Filters)
     {
         PlaceCheckingFilter subFilter = new PlaceCheckingFilter();
         filter.OrFilter.Add(subFilter);
         List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value;
         foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions)
         {
             if (FilterPermissionDefinition.Name == nameof(subFilter.Id))
             {
                 subFilter.Id = FilterBuilder.Merge(subFilter.Id, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.AppUserId))
             {
                 subFilter.AppUserId = FilterBuilder.Merge(subFilter.AppUserId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.PlaceId))
             {
                 subFilter.PlaceId = FilterBuilder.Merge(subFilter.PlaceId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.PlaceCheckingStatusId))
             {
                 subFilter.PlaceCheckingStatusId = FilterBuilder.Merge(subFilter.PlaceCheckingStatusId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.CheckInAt))
             {
                 subFilter.CheckInAt = FilterBuilder.Merge(subFilter.CheckInAt, FilterPermissionDefinition.DateFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.CheckOutAt))
             {
                 subFilter.CheckOutAt = FilterBuilder.Merge(subFilter.CheckOutAt, FilterPermissionDefinition.DateFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(CurrentContext.UserId) && FilterPermissionDefinition.IdFilter != null)
             {
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.IS.Id)
                 {
                 }
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.ISNT.Id)
                 {
                 }
             }
         }
     }
     return(filter);
 }
Ejemplo n.º 5
0
        public async Task <List <PlaceChecking> > List(PlaceCheckingFilter filter)
        {
            if (filter == null)
            {
                return(new List <PlaceChecking>());
            }
            IQueryable <PlaceCheckingDAO> PlaceCheckingDAOs = DataContext.PlaceChecking.AsNoTracking();

            PlaceCheckingDAOs = DynamicFilter(PlaceCheckingDAOs, filter);
            PlaceCheckingDAOs = DynamicOrder(PlaceCheckingDAOs, filter);
            List <PlaceChecking> PlaceCheckings = await DynamicSelect(PlaceCheckingDAOs, filter);

            return(PlaceCheckings);
        }
Ejemplo n.º 6
0
        public async Task <int> Count(PlaceCheckingFilter PlaceCheckingFilter)
        {
            try
            {
                int result = await UOW.PlaceCheckingRepository.Count(PlaceCheckingFilter);

                return(result);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(PlaceCheckingService));
            }
            return(0);
        }
Ejemplo n.º 7
0
        public async Task <List <PlaceChecking> > List(PlaceCheckingFilter PlaceCheckingFilter)
        {
            try
            {
                List <PlaceChecking> PlaceCheckings = await UOW.PlaceCheckingRepository.List(PlaceCheckingFilter);

                return(PlaceCheckings);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(PlaceCheckingService));
            }
            return(null);
        }
        public async Task <ActionResult <int> > Count([FromBody] PlaceChecking_PlaceCheckingFilterDTO PlaceChecking_PlaceCheckingFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            PlaceCheckingFilter PlaceCheckingFilter = ConvertFilterDTOToFilterEntity(PlaceChecking_PlaceCheckingFilterDTO);

            PlaceCheckingFilter = await PlaceCheckingService.ToFilter(PlaceCheckingFilter);

            int count = await PlaceCheckingService.Count(PlaceCheckingFilter);

            return(count);
        }
        public async Task <ActionResult <List <PlaceChecking_PlaceCheckingDTO> > > List([FromBody] PlaceChecking_PlaceCheckingFilterDTO PlaceChecking_PlaceCheckingFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            PlaceCheckingFilter PlaceCheckingFilter = ConvertFilterDTOToFilterEntity(PlaceChecking_PlaceCheckingFilterDTO);

            PlaceCheckingFilter = await PlaceCheckingService.ToFilter(PlaceCheckingFilter);

            List <PlaceChecking> PlaceCheckings = await PlaceCheckingService.List(PlaceCheckingFilter);

            List <PlaceChecking_PlaceCheckingDTO> PlaceChecking_PlaceCheckingDTOs = PlaceCheckings
                                                                                    .Select(c => new PlaceChecking_PlaceCheckingDTO(c)).ToList();

            return(PlaceChecking_PlaceCheckingDTOs);
        }
        private PlaceCheckingFilter ConvertFilterDTOToFilterEntity(PlaceChecking_PlaceCheckingFilterDTO PlaceChecking_PlaceCheckingFilterDTO)
        {
            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter();

            PlaceCheckingFilter.Selects   = PlaceCheckingSelect.ALL;
            PlaceCheckingFilter.Skip      = PlaceChecking_PlaceCheckingFilterDTO.Skip;
            PlaceCheckingFilter.Take      = PlaceChecking_PlaceCheckingFilterDTO.Take;
            PlaceCheckingFilter.OrderBy   = PlaceChecking_PlaceCheckingFilterDTO.OrderBy;
            PlaceCheckingFilter.OrderType = PlaceChecking_PlaceCheckingFilterDTO.OrderType;

            PlaceCheckingFilter.Id                    = PlaceChecking_PlaceCheckingFilterDTO.Id;
            PlaceCheckingFilter.AppUserId             = PlaceChecking_PlaceCheckingFilterDTO.AppUserId;
            PlaceCheckingFilter.PlaceId               = PlaceChecking_PlaceCheckingFilterDTO.PlaceId;
            PlaceCheckingFilter.PlaceCheckingStatusId = PlaceChecking_PlaceCheckingFilterDTO.PlaceCheckingStatusId;
            PlaceCheckingFilter.CheckInAt             = PlaceChecking_PlaceCheckingFilterDTO.CheckInAt;
            PlaceCheckingFilter.CheckOutAt            = PlaceChecking_PlaceCheckingFilterDTO.CheckOutAt;
            return(PlaceCheckingFilter);
        }
Ejemplo n.º 11
0
        public async Task <bool> ValidateId(PlaceChecking PlaceChecking)
        {
            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = PlaceChecking.Id
                },
                Selects = PlaceCheckingSelect.Id
            };

            int count = await UOW.PlaceCheckingRepository.Count(PlaceCheckingFilter);

            if (count == 0)
            {
                PlaceChecking.AddError(nameof(PlaceCheckingValidator), nameof(PlaceChecking.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
        private async Task <bool> HasPermission(long Id)
        {
            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter();

            PlaceCheckingFilter = await PlaceCheckingService.ToFilter(PlaceCheckingFilter);

            if (Id == 0)
            {
            }
            else
            {
                PlaceCheckingFilter.Id = new IdFilter {
                    Equal = Id
                };
                int count = await PlaceCheckingService.Count(PlaceCheckingFilter);

                if (count == 0)
                {
                    return(false);
                }
            }
            return(true);
        }
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            PlaceFilter PlaceFilter = new PlaceFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = PlaceSelect.ALL
            };
            List <Place> Places = await PlaceService.List(PlaceFilter);

            PlaceCheckingFilter PlaceCheckingFilter = new PlaceCheckingFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = PlaceCheckingSelect.ALL
            };
            List <PlaceChecking> PlaceCheckings = await PlaceCheckingService.List(PlaceCheckingFilter);

            AppUserFilter TargetFilter = new AppUserFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = AppUserSelect.ALL
            };
            List <AppUser> Targets = await AppUserService.List(TargetFilter);

            AppUserFilter TrackerFilter = new AppUserFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = AppUserSelect.ALL
            };
            List <AppUser> Trackers = await AppUserService.List(TrackerFilter);

            List <Tracking> Trackings = new List <Tracking>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(Trackings));
                }
                int StartColumn           = 1;
                int StartRow              = 1;
                int IdColumn              = 0 + StartColumn;
                int TrackerIdColumn       = 1 + StartColumn;
                int TargetIdColumn        = 2 + StartColumn;
                int PlaceIdColumn         = 3 + StartColumn;
                int PlaceCheckingIdColumn = 4 + StartColumn;
                int UsedColumn            = 8 + StartColumn;

                for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++)
                {
                    if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString()))
                    {
                        break;
                    }
                    string IdValue              = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString();
                    string TrackerIdValue       = worksheet.Cells[i + StartRow, TrackerIdColumn].Value?.ToString();
                    string TargetIdValue        = worksheet.Cells[i + StartRow, TargetIdColumn].Value?.ToString();
                    string PlaceIdValue         = worksheet.Cells[i + StartRow, PlaceIdColumn].Value?.ToString();
                    string PlaceCheckingIdValue = worksheet.Cells[i + StartRow, PlaceCheckingIdColumn].Value?.ToString();
                    string UsedValue            = worksheet.Cells[i + StartRow, UsedColumn].Value?.ToString();

                    Tracking Tracking = new Tracking();
                    Place    Place    = Places.Where(x => x.Id.ToString() == PlaceIdValue).FirstOrDefault();
                    Tracking.PlaceId = Place == null ? 0 : Place.Id;
                    Tracking.Place   = Place;
                    PlaceChecking PlaceChecking = PlaceCheckings.Where(x => x.Id.ToString() == PlaceCheckingIdValue).FirstOrDefault();
                    Tracking.PlaceCheckingId = PlaceChecking == null ? 0 : PlaceChecking.Id;
                    Tracking.PlaceChecking   = PlaceChecking;
                    AppUser Target = Targets.Where(x => x.Id.ToString() == TargetIdValue).FirstOrDefault();
                    Tracking.TargetId = Target == null ? 0 : Target.Id;
                    Tracking.Target   = Target;
                    AppUser Tracker = Trackers.Where(x => x.Id.ToString() == TrackerIdValue).FirstOrDefault();
                    Tracking.TrackerId = Tracker == null ? 0 : Tracker.Id;
                    Tracking.Tracker   = Tracker;

                    Trackings.Add(Tracking);
                }
            }
            Trackings = await TrackingService.Import(Trackings);

            if (Trackings.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < Trackings.Count; i++)
                {
                    Tracking Tracking = Trackings[i];
                    if (!Tracking.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (Tracking.Errors.ContainsKey(nameof(Tracking.Id)))
                        {
                            Error += Tracking.Errors[nameof(Tracking.Id)];
                        }
                        if (Tracking.Errors.ContainsKey(nameof(Tracking.TrackerId)))
                        {
                            Error += Tracking.Errors[nameof(Tracking.TrackerId)];
                        }
                        if (Tracking.Errors.ContainsKey(nameof(Tracking.TargetId)))
                        {
                            Error += Tracking.Errors[nameof(Tracking.TargetId)];
                        }
                        if (Tracking.Errors.ContainsKey(nameof(Tracking.PlaceId)))
                        {
                            Error += Tracking.Errors[nameof(Tracking.PlaceId)];
                        }
                        if (Tracking.Errors.ContainsKey(nameof(Tracking.PlaceCheckingId)))
                        {
                            Error += Tracking.Errors[nameof(Tracking.PlaceCheckingId)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }
Ejemplo n.º 14
0
        private IQueryable <PlaceCheckingDAO> DynamicOrder(IQueryable <PlaceCheckingDAO> query, PlaceCheckingFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case PlaceCheckingOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

                case PlaceCheckingOrder.AppUser:
                    query = query.OrderBy(q => q.AppUserId);
                    break;

                case PlaceCheckingOrder.Place:
                    query = query.OrderBy(q => q.PlaceId);
                    break;

                case PlaceCheckingOrder.PlaceCheckingStatus:
                    query = query.OrderBy(q => q.PlaceCheckingStatusId);
                    break;

                case PlaceCheckingOrder.CheckInAt:
                    query = query.OrderBy(q => q.CheckInAt);
                    break;

                case PlaceCheckingOrder.CheckOutAt:
                    query = query.OrderBy(q => q.CheckOutAt);
                    break;
                }
                break;

            case OrderType.DESC:
                switch (filter.OrderBy)
                {
                case PlaceCheckingOrder.Id:
                    query = query.OrderByDescending(q => q.Id);
                    break;

                case PlaceCheckingOrder.AppUser:
                    query = query.OrderByDescending(q => q.AppUserId);
                    break;

                case PlaceCheckingOrder.Place:
                    query = query.OrderByDescending(q => q.PlaceId);
                    break;

                case PlaceCheckingOrder.PlaceCheckingStatus:
                    query = query.OrderByDescending(q => q.PlaceCheckingStatusId);
                    break;

                case PlaceCheckingOrder.CheckInAt:
                    query = query.OrderByDescending(q => q.CheckInAt);
                    break;

                case PlaceCheckingOrder.CheckOutAt:
                    query = query.OrderByDescending(q => q.CheckOutAt);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }
Ejemplo n.º 15
0
        private async Task <List <PlaceChecking> > DynamicSelect(IQueryable <PlaceCheckingDAO> query, PlaceCheckingFilter filter)
        {
            List <PlaceChecking> PlaceCheckings = await query.Select(q => new PlaceChecking()
            {
                Id                    = filter.Selects.Contains(PlaceCheckingSelect.Id) ? q.Id : default(long),
                AppUserId             = filter.Selects.Contains(PlaceCheckingSelect.AppUser) ? q.AppUserId : default(long),
                PlaceId               = filter.Selects.Contains(PlaceCheckingSelect.Place) ? q.PlaceId : default(long),
                PlaceCheckingStatusId = filter.Selects.Contains(PlaceCheckingSelect.PlaceCheckingStatus) ? q.PlaceCheckingStatusId : default(long),
                CheckInAt             = filter.Selects.Contains(PlaceCheckingSelect.CheckInAt) ? q.CheckInAt : default(DateTime?),
                CheckOutAt            = filter.Selects.Contains(PlaceCheckingSelect.CheckOutAt) ? q.CheckOutAt : default(DateTime?),
                AppUser               = filter.Selects.Contains(PlaceCheckingSelect.AppUser) && q.AppUser != null ? new AppUser
                {
                    Id          = q.AppUser.Id,
                    Username    = q.AppUser.Username,
                    Password    = q.AppUser.Password,
                    DisplayName = q.AppUser.DisplayName,
                    Email       = q.AppUser.Email,
                    Phone       = q.AppUser.Phone,
                } : null,
                Place = filter.Selects.Contains(PlaceCheckingSelect.Place) && q.Place != null ? new Place
                {
                    Id           = q.Place.Id,
                    Name         = q.Place.Name,
                    PlaceGroupId = q.Place.PlaceGroupId,
                    Radius       = q.Place.Radius,
                    Latitude     = q.Place.Latitude,
                    Longtitude   = q.Place.Longtitude,
                } : null,
                PlaceCheckingStatus = filter.Selects.Contains(PlaceCheckingSelect.PlaceCheckingStatus) && q.PlaceCheckingStatus != null ? new CheckingStatus
                {
                    Id   = q.PlaceCheckingStatus.Id,
                    Code = q.PlaceCheckingStatus.Code,
                    Name = q.PlaceCheckingStatus.Name,
                } : null,
            }).ToListAsync();

            return(PlaceCheckings);
        }
Ejemplo n.º 16
0
 private IQueryable <PlaceCheckingDAO> DynamicFilter(IQueryable <PlaceCheckingDAO> query, PlaceCheckingFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     if (filter.Id != null && filter.Id.HasValue)
     {
         query = query.Where(q => q.Id, filter.Id);
     }
     if (filter.AppUserId != null && filter.AppUserId.HasValue)
     {
         query = query.Where(q => q.AppUserId, filter.AppUserId);
     }
     if (filter.PlaceId != null && filter.PlaceId.HasValue)
     {
         query = query.Where(q => q.PlaceId, filter.PlaceId);
     }
     if (filter.PlaceCheckingStatusId != null && filter.PlaceCheckingStatusId.HasValue)
     {
         query = query.Where(q => q.PlaceCheckingStatusId, filter.PlaceCheckingStatusId);
     }
     if (filter.CheckInAt != null && filter.CheckInAt.HasValue)
     {
         query = query.Where(q => q.CheckInAt == null).Union(query.Where(q => q.CheckInAt.HasValue).Where(q => q.CheckInAt.Value, filter.CheckInAt));
     }
     if (filter.CheckOutAt != null && filter.CheckOutAt.HasValue)
     {
         query = query.Where(q => q.CheckOutAt == null).Union(query.Where(q => q.CheckOutAt.HasValue).Where(q => q.CheckOutAt.Value, filter.CheckOutAt));
     }
     query = OrFilter(query, filter);
     return(query);
 }
        public async Task <ActionResult> Export([FromBody] Tracking_TrackingFilterDTO Tracking_TrackingFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            MemoryStream memoryStream = new MemoryStream();

            using (ExcelPackage excel = new ExcelPackage(memoryStream))
            {
                #region Tracking
                var TrackingFilter = ConvertFilterDTOToFilterEntity(Tracking_TrackingFilterDTO);
                TrackingFilter.Skip = 0;
                TrackingFilter.Take = int.MaxValue;
                TrackingFilter      = await TrackingService.ToFilter(TrackingFilter);

                List <Tracking> Trackings = await TrackingService.List(TrackingFilter);

                var TrackingHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "TrackerId",
                        "TargetId",
                        "PlaceId",
                        "PlaceCheckingId",
                    }
                };
                List <object[]> TrackingData = new List <object[]>();
                for (int i = 0; i < Trackings.Count; i++)
                {
                    var Tracking = Trackings[i];
                    TrackingData.Add(new Object[]
                    {
                        Tracking.Id,
                        Tracking.TrackerId,
                        Tracking.TargetId,
                        Tracking.PlaceId,
                        Tracking.PlaceCheckingId,
                    });
                }
                excel.GenerateWorksheet("Tracking", TrackingHeaders, TrackingData);
                #endregion

                #region Place
                var PlaceFilter = new PlaceFilter();
                PlaceFilter.Selects   = PlaceSelect.ALL;
                PlaceFilter.OrderBy   = PlaceOrder.Id;
                PlaceFilter.OrderType = OrderType.ASC;
                PlaceFilter.Skip      = 0;
                PlaceFilter.Take      = int.MaxValue;
                List <Place> Places = await PlaceService.List(PlaceFilter);

                var PlaceHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Name",
                        "PlaceGroupId",
                        "Radius",
                        "Latitude",
                        "Longtitude",
                    }
                };
                List <object[]> PlaceData = new List <object[]>();
                for (int i = 0; i < Places.Count; i++)
                {
                    var Place = Places[i];
                    PlaceData.Add(new Object[]
                    {
                        Place.Id,
                        Place.Name,
                        Place.PlaceGroupId,
                        Place.Radius,
                        Place.Latitude,
                        Place.Longtitude,
                    });
                }
                excel.GenerateWorksheet("Place", PlaceHeaders, PlaceData);
                #endregion
                #region PlaceChecking
                var PlaceCheckingFilter = new PlaceCheckingFilter();
                PlaceCheckingFilter.Selects   = PlaceCheckingSelect.ALL;
                PlaceCheckingFilter.OrderBy   = PlaceCheckingOrder.Id;
                PlaceCheckingFilter.OrderType = OrderType.ASC;
                PlaceCheckingFilter.Skip      = 0;
                PlaceCheckingFilter.Take      = int.MaxValue;
                List <PlaceChecking> PlaceCheckings = await PlaceCheckingService.List(PlaceCheckingFilter);

                var PlaceCheckingHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "AppUserId",
                        "PlaceId",
                        "PlaceCheckingStatusId",
                        "CheckInAt",
                        "CheckOutAt",
                    }
                };
                List <object[]> PlaceCheckingData = new List <object[]>();
                for (int i = 0; i < PlaceCheckings.Count; i++)
                {
                    var PlaceChecking = PlaceCheckings[i];
                    PlaceCheckingData.Add(new Object[]
                    {
                        PlaceChecking.Id,
                        PlaceChecking.AppUserId,
                        PlaceChecking.PlaceId,
                        PlaceChecking.PlaceCheckingStatusId,
                        PlaceChecking.CheckInAt,
                        PlaceChecking.CheckOutAt,
                    });
                }
                excel.GenerateWorksheet("PlaceChecking", PlaceCheckingHeaders, PlaceCheckingData);
                #endregion
                #region AppUser
                var AppUserFilter = new AppUserFilter();
                AppUserFilter.Selects   = AppUserSelect.ALL;
                AppUserFilter.OrderBy   = AppUserOrder.Id;
                AppUserFilter.OrderType = OrderType.ASC;
                AppUserFilter.Skip      = 0;
                AppUserFilter.Take      = int.MaxValue;
                List <AppUser> AppUsers = await AppUserService.List(AppUserFilter);

                var AppUserHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Username",
                        "Password",
                        "DisplayName",
                        "Email",
                        "Phone",
                    }
                };
                List <object[]> AppUserData = new List <object[]>();
                for (int i = 0; i < AppUsers.Count; i++)
                {
                    var AppUser = AppUsers[i];
                    AppUserData.Add(new Object[]
                    {
                        AppUser.Id,
                        AppUser.Username,
                        AppUser.Password,
                        AppUser.DisplayName,
                        AppUser.Email,
                        AppUser.Phone,
                    });
                }
                excel.GenerateWorksheet("AppUser", AppUserHeaders, AppUserData);
                #endregion
                excel.Save();
            }
            return(File(memoryStream.ToArray(), "application/octet-stream", "Tracking.xlsx"));
        }
Ejemplo n.º 18
0
        private IQueryable <PlaceCheckingDAO> OrFilter(IQueryable <PlaceCheckingDAO> query, PlaceCheckingFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <PlaceCheckingDAO> initQuery = query.Where(q => false);

            foreach (PlaceCheckingFilter PlaceCheckingFilter in filter.OrFilter)
            {
                IQueryable <PlaceCheckingDAO> queryable = query;
                if (PlaceCheckingFilter.Id != null && PlaceCheckingFilter.Id.HasValue)
                {
                    queryable = queryable.Where(q => q.Id, filter.Id);
                }
                if (PlaceCheckingFilter.AppUserId != null && PlaceCheckingFilter.AppUserId.HasValue)
                {
                    queryable = queryable.Where(q => q.AppUserId, filter.AppUserId);
                }
                if (PlaceCheckingFilter.PlaceId != null && PlaceCheckingFilter.PlaceId.HasValue)
                {
                    queryable = queryable.Where(q => q.PlaceId, filter.PlaceId);
                }
                if (PlaceCheckingFilter.PlaceCheckingStatusId != null && PlaceCheckingFilter.PlaceCheckingStatusId.HasValue)
                {
                    queryable = queryable.Where(q => q.PlaceCheckingStatusId, filter.PlaceCheckingStatusId);
                }
                if (PlaceCheckingFilter.CheckInAt != null && PlaceCheckingFilter.CheckInAt.HasValue)
                {
                    queryable = queryable.Where(q => q.CheckInAt == null).Union(queryable.Where(q => q.CheckInAt.HasValue).Where(q => q.CheckInAt.Value, filter.CheckInAt));
                }
                if (PlaceCheckingFilter.CheckOutAt != null && PlaceCheckingFilter.CheckOutAt.HasValue)
                {
                    queryable = queryable.Where(q => q.CheckOutAt == null).Union(queryable.Where(q => q.CheckOutAt.HasValue).Where(q => q.CheckOutAt.Value, filter.CheckOutAt));
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }