public MyWOData DownloadMyWODataSchema() { var data = new MyWOData(); data.InitializeDataForSqlLiteSchema(); return(data); }
public MyWOData DownloadMyWOData([FromUri] DateTime?modifiedDateTime) { var data = new MyWOData(); // we always get all WOs of this user // on the mobile, first we need to truncate all WO's related tables // before store the data returned. var workOrders = _workOrderRepository.GetAll() .Where(w => w.Assignment.Users.Any(u => u.Id == this._workContext.CurrentUser.Id)) //.Include(w => w.WorkOrderTasks) //.Include(w => w.Assignment) //.Include(w => w.WorkOrderLabors) //.Include(w => w.WorkOrderItems) //.Include(w => w.WorkOrderServiceItems) //.Include(w => w.WorkOrderMiscCosts) .ToList(); // Get My WOs data.WorkOrder = workOrders.Select(w => w.ToModel()).ToList(); // Get My Assignments var assignments = workOrders.Select(w => w.Assignment).ToList(); data.Assignment = assignments.Select(a => a.ToModel()).ToList(); data.AssignmentUser = new List <AssignmentUserModel>(); foreach (var a in assignments) { foreach (var u in a.Users) { data.AssignmentUser.Add(new AssignmentUserModel { AssignmentId = a.Id, UserId = u.Id }); } } // Get My WorkOrderLabors data.WorkOrderLabor = new List <WorkOrderLaborModel>(); foreach (var wo in workOrders) { foreach (var wol in wo.WorkOrderLabors) { data.WorkOrderLabor.Add(wol.ToModel()); } } // Get My WorkOrderTasks data.WorkOrderTask = new List <WorkOrderTaskModel>(); foreach (var wo in workOrders) { foreach (var wot in wo.WorkOrderTasks) { data.WorkOrderTask.Add(wot.ToModel()); } } // Get My WorkOrderItems data.WorkOrderItem = new List <WorkOrderItemModel>(); foreach (var wo in workOrders) { foreach (var woi in wo.WorkOrderItems) { data.WorkOrderItem.Add(woi.ToModel()); } } // Get My WorkOrderServiceItems data.WorkOrderServiceItem = new List <WorkOrderServiceItemModel>(); foreach (var wo in workOrders) { foreach (var wos in wo.WorkOrderServiceItems) { data.WorkOrderServiceItem.Add(wos.ToModel()); } } // Get My WorkOrderMiscCosts data.WorkOrderMiscCost = new List <WorkOrderMiscCostModel>(); foreach (var wo in workOrders) { foreach (var wom in wo.WorkOrderMiscCosts) { data.WorkOrderMiscCost.Add(wom.ToModel()); } } // Get My Comments data.Comment = new List <CommentModel>(); foreach (var wo in workOrders) { var comments = _commentRepository.GetAll() .Where(c => c.EntityId == wo.Id && c.EntityType == EntityType.WorkOrder) .ToList(); foreach (var comment in comments) { data.Comment.Add(comment.ToModel()); } } // Get My Sites var sites = _siteService.GetSites(this._workContext.CurrentUser, modifiedDateTime); data.Site = sites.Select(s => s.ToModel()).ToList(); // Get My Assets var assets = _siteService.GetAssets(this._workContext.CurrentUser, modifiedDateTime); data.Asset = assets.Select(s => s.ToModel()).ToList(); // Get My Locations var locations = _siteService.GetLocations(this._workContext.CurrentUser, modifiedDateTime); data.Location = locations.Select(s => s.ToModel()).ToList(); // Get all ValueItemCategory data.ValueItemCategory = _valueItemCategoryRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get all ValueItem data.ValueItem = _valueItemRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get all Code data.Code = _codeRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get My Teams var teams = _siteService.GetTeams(this._workContext.CurrentUser, modifiedDateTime); data.Team = teams.Select(t => t.ToModel()).ToList(); // Get My Users var users = _siteService.GetUsers(this._workContext.CurrentUser, modifiedDateTime); data.User = users.Select(s => s.ToModel()).ToList(); // Get My Technicians var technicians = _siteService.GetTechnicians(this._workContext.CurrentUser, modifiedDateTime); data.Technician = technicians.Select(s => s.ToModel()).ToList(); // Get TeamTechnician data.TeamTechnician = new List <TeamTechnicianModel>(); foreach (var team in teams) { foreach (var technician in team.Technicians) { data.TeamTechnician.Add(new TeamTechnicianModel { TeamId = team.Id, TechnicianId = technician.Id }); } } // Get all Craft data.Craft = _craftRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get all UnitOfMeasure data.UnitOfMeasure = _unitOfMeasureRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get all MeterGroup var meterGroups = _meterGroupRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).Include(v => v.MeterLineItems).ToList(); data.MeterGroup = meterGroups.Select(v => v.ToModel()).ToList(); // Get all Meter data.Meter = _meterRepository.GetAll() .Where(v => v.ModifiedDateTime >= modifiedDateTime).ToList() .Select(v => v.ToModel()).ToList(); // Get My MeterLineItems data.MeterLineItem = new List <MeterLineItemModel>(); foreach (var mg in meterGroups) { foreach (var m in mg.MeterLineItems) { data.MeterLineItem.Add(m.ToModel()); } } // Get My Points var points = _siteService.GetPoints(this._workContext.CurrentUser, modifiedDateTime); data.Point = points.Select(s => s.ToModel()).ToList(); // Get My PointMeterLineItems data.PointMeterLineItem = new List <PointMeterLineItemModel>(); foreach (var p in points) { foreach (var pm in p.PointMeterLineItems) { data.PointMeterLineItem.Add(pm.ToModel()); } } // Get My Reading data.Reading = new List <ReadingModel>(); data.ModifiedDateTime = DateTime.UtcNow; return(data); }