public ActionResult <ListSchedulesResponse> Post(ListSchedules request) { ListSchedulesResponse ret = new ListSchedulesResponse(); GXSelectArgs arg = GXSelectArgs.SelectAll <GXSchedule>(); arg.Distinct = true; arg.Where.And <GXSchedule>(q => q.Removed == DateTime.MinValue); if (request.ObjectId != 0) { arg.Joins.AddInnerJoin <GXSchedule, GXScheduleToAttribute>(s => s.Id, o => o.ScheduleId); arg.Joins.AddInnerJoin <GXScheduleToAttribute, GXAttribute>(s => s.AttributeId, o => o.Id); arg.Where.And <GXAttribute>(q => q.ObjectId == request.ObjectId); } else if (request.DeviceId != 0) { arg.Joins.AddInnerJoin <GXSchedule, GXScheduleToAttribute>(s => s.Id, o => o.ScheduleId); arg.Joins.AddInnerJoin <GXScheduleToAttribute, GXAttribute>(s => s.AttributeId, o => o.Id); arg.Joins.AddInnerJoin <GXAttribute, GXObject>(s => s.ObjectId, o => o.Id); arg.Where.And <GXObject>(q => q.DeviceId == request.DeviceId); } /* * if ((request.Targets & TargetType.Attribute) != 0) * { * arg.Columns.Add<GXObject>(); * arg.Columns.Add<GXScheduleToAttribute>(); * arg.Joins.AddLeftJoin<GXSchedule, GXScheduleToAttribute>(s => s.Id, o => o.ScheduleId); * arg.Joins.AddLeftJoin<GXScheduleToAttribute, GXAttribute>(s => s.AttributeId, o => o.Id); * arg.Joins.AddInnerJoin<GXAttribute, GXObject>(s => s.ObjectId, o => o.Id); * arg.Where.And<GXObject>(q => q.Removed == DateTime.MinValue); * arg.Where.And<GXAttribute>(q => q.Removed == DateTime.MinValue); * } */ ret.Schedules = host.Connection.Select <GXSchedule>(arg).ToArray(); foreach (GXSchedule it in ret.Schedules) { arg = GXSelectArgs.SelectAll <GXObject>(); arg.Columns.Add <GXAttribute>(); arg.Distinct = true; arg.Joins.AddInnerJoin <GXSchedule, GXScheduleToAttribute>(s => s.Id, o => o.ScheduleId); arg.Joins.AddInnerJoin <GXScheduleToAttribute, GXAttribute>(s => s.AttributeId, o => o.Id); arg.Joins.AddInnerJoin <GXAttribute, GXObject>(s => s.ObjectId, o => o.Id); arg.Where.And <GXObject>(q => q.Removed == DateTime.MinValue); arg.Where.And <GXAttribute>(q => q.Removed == DateTime.MinValue); arg.Where.And <GXSchedule>(q => q.Id == it.Id); it.Objects = host.Connection.Select <GXObject>(arg); } return(ret); }
private async void AddNewSchedule() { IsBusy = true; var result = await ApiService.Instance.SaveBooking(NewBookingItem); await App.Current.MainPage.DisplayAlert("Notar", result? "Faça o calendário bem sucedido" : "Confirmar um compromisso", "OK"); if (result) { ListSchedules.Add((Schedule)NewBookingItem); } IsShowingAddNewPopUp = false; IsBusy = false; }