Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }