public ResourceStructureAttributeValueModel(ResourceAttributeValue value) { Id = value.Id; ResourceId = value.Resource.Id; ResourceAttributeUsageId = value.ResourceAttributeUsage.Id; AttributeName = value.ResourceAttributeUsage.ResourceStructureAttribute.Name; ResourceAttributeUsage = new ResourceAttributeUsageModel(value.ResourceAttributeUsage); }
// get all events as list and optional by user public ActionResult GetEventsAsList(string myBookings, string history = "false") { List <BookingEventModel> model = new List <BookingEventModel>(); List <BookingEvent> eventList = new List <BookingEvent>(); // Get all events optional filtered by user if (bool.Parse(history) == true) { eventList = GetAllEventsFiltered(bool.Parse(myBookings)); // gut full list with history ViewBag.history = "true"; } else { eventList = GetAllEventsFiltered(bool.Parse(myBookings), DateTime.Now.AddDays(-1).ToString()); // get list without historical events ViewBag.history = "false"; } // Remove dublicate booking events in resources list (without filter not dublicates, but with) eventList = eventList.GroupBy(x => x.Id).Select(x => x.First()).ToList(); foreach (BookingEvent e in eventList) { BookingEventModel m = new BookingEventModel(e); m.startDate = m.Schedules.Select(a => a.ScheduleDurationModel.StartDate).ToList().Min(); m.endDate = m.Schedules.Select(a => a.ScheduleDurationModel.EndDate).ToList().Max(); m.ResourceName = string.Join <string>(",", (m.Schedules.Select(a => a.ResourceName)).ToList()); List <string> attributes = new List <string>(); foreach (var c in m.Schedules.Select(a => a.ResourceAttributeValues).ToList()) { // Assumption the first attribute (domain value) is of importance -> show it in the list ResourceAttributeValue value = c.First(); if (value is TextValue) { TextValue tv = (TextValue)value; attributes.Add(tv.Value.ToString()); } } m.ResourceAttributes = string.Join <string>(",", attributes.Distinct()); model.Add(m); } //model = model.OrderByDescending(a => a.startDate).ToList(); return(PartialView("_listEvents", model)); }
public ScheduleEventModel(R.SingleResource resource) { ResourceId = resource.Id; ResourceName = resource.Name; ResourceDescription = resource.Description; WithActivity = resource.WithActivity; ResourceQuantity = resource.Quantity; ScheduleDurationModel scheduleDurationModel = new ScheduleDurationModel(); scheduleDurationModel.DurationValue = resource.Duration.Value; scheduleDurationModel.TimeUnit = resource.Duration.TimeUnit; ScheduleDurationModel = scheduleDurationModel; //ByPerson = new PersonInSchedule(); ForPersons = new List <PersonInSchedule>(); Contact = new PersonInSchedule(); Activities = new List <ActivityEventModel>(); Files = new List <FileValueModel>(); //Get File to Resource if exsist foreach (ResourceAttributeUsage usage in resource.ResourceStructure.ResourceAttributeUsages) { if (usage.IsFileDataType) { using (ResourceStructureAttributeManager valueManager = new ResourceStructureAttributeManager()) { ResourceAttributeValue value = valueManager.GetValueByUsageAndResource(usage.Id, resource.Id); if (value is FileValue) { FileValue fileValue = (FileValue)value; FileValueModel fvm = new FileValueModel(fileValue); Files.Add(fvm); //if (!usage.IsValueOptional) if (fvm.Data != null) { ResourceHasFiles = true; } } } } } }
public ScheduleEventModel(Schedule schedule) { ScheduleId = schedule.Id; ResourceId = schedule.Resource.Id; ResourceName = schedule.Resource.Name; ResourceDescription = schedule.Resource.Description; ResourceAttributeValues = schedule.Resource.ResourceAttributeValues; Files = new List <FileValueModel>(); WithActivity = schedule.Resource.WithActivity; //Get File to Resource if exsist foreach (ResourceAttributeUsage usage in schedule.Resource.ResourceStructure.ResourceAttributeUsages) { if (usage.IsFileDataType) { using (ResourceStructureAttributeManager valueManager = new ResourceStructureAttributeManager()) { ResourceAttributeValue value = valueManager.GetValueByUsageAndResource(usage.Id, schedule.Resource.Id); if (value is FileValue) { FileValue fileValue = (FileValue)value; FileValueModel fvm = new FileValueModel(fileValue); Files.Add(fvm); if (!usage.IsValueOptional) { ResourceHasFiles = true; } } } } } ScheduleDurationModel scheduleDurationModel = new ScheduleDurationModel(); scheduleDurationModel.StartDate = schedule.StartDate; scheduleDurationModel.EndDate = schedule.EndDate; scheduleDurationModel.DurationValue = schedule.Resource.Duration.Value; scheduleDurationModel.TimeUnit = schedule.Resource.Duration.TimeUnit; ScheduleDurationModel = scheduleDurationModel; ScheduleQuantity = schedule.Quantity; ResourceQuantity = schedule.Resource.Quantity; Status = schedule.Resource.ResourceStatus.ToString(); //get Persons ForPersons = new List <PersonInSchedule>(); if (schedule.ForPerson.Self is PersonGroup) { PersonGroup pGroup = (PersonGroup)schedule.ForPerson.Self; Contact = new PersonInSchedule(pGroup.Id, pGroup.Contact, true); ContactName = pGroup.Contact.DisplayName; foreach (User u in pGroup.Users) { if (u.Id == pGroup.Contact.Id) { ForPersons.Add(new PersonInSchedule(pGroup.Id, u, true)); } else { ForPersons.Add(new PersonInSchedule(pGroup.Id, u, false)); } } } else if (schedule.ForPerson.Self is IndividualPerson) { IndividualPerson iPerson = (IndividualPerson)schedule.ForPerson.Self; Contact = new PersonInSchedule(iPerson.Id, iPerson.Contact, true); ContactName = iPerson.Contact.DisplayName; ForPersons.Add(new PersonInSchedule(iPerson.Id, iPerson.Person, true)); } if (schedule.ByPerson.Self is IndividualPerson) { IndividualPerson iPersonBy = (IndividualPerson)schedule.ByPerson.Self; ByPerson = iPersonBy.Person.DisplayName; } }