Пример #1
0
        public async Task <IActionResult> DeleteEventByCalID(String calID)
        {
            if (!EventExists(calID))
            {
                return(NotFound());
            }

            Models.Event foundEvent = _context.Events.Where(e => e.googleCalID == calID).FirstOrDefault();
            var          @event     = await _context.Events.FindAsync(foundEvent.id);

            if (@event == null)
            {
                return(NotFound());
            }

            try
            {
                service.Events.Delete(calendarId, calID).Execute();
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to Delete on Google Calendar");
                return(BadRequest());
            }

            _context.Events.Remove(@event);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                Console.WriteLine("Failed to update database");
                return(BadRequest());
            }


            return(NoContent());
        }
Пример #2
0
        private List <Models.Event> BubbleSort(List <Models.Event> toSort, int listLength)
        {
            Console.WriteLine("I've run" + listLength);
            if (listLength == 1)
            {
                return(toSort);
            }

            List <Models.Event> sorted = new List <Models.Event>();

            for (int i = 0; i < listLength - 1; i++)
            {
                if (toSort[i].eventStart > toSort[i + 1].eventStart)
                {
                    Models.Event temp = toSort[i];
                    toSort[i]     = toSort[i + 1];
                    toSort[i + 1] = temp;
                }
            }

            BubbleSort(toSort, listLength - 1);

            return(toSort);
        }
Пример #3
0
        //public async Task<ActionResult> PutEvent(Models.Event model)
        public async Task <ActionResult> PutEvent(Models.Event model)
        {
            if (!EventExists(model.googleCalID))
            {
                return(NotFound());
            }

            Models.Event foundEvent = _context.Events.Where(e => e.googleCalID == model.googleCalID).FirstOrDefault();
            //var existedEvent = await _context.Set<Models.Event>().FirstOrDefaultAsync(i=> i.id==model.id);

            if (foundEvent == null)
            {
                return(BadRequest());
            }

            string bandLink = "";

            if (model.bandLink != null)
            {
                bandLink = "<a href=\"" + model.bandLink + "\"> " + model.bandName + "</a> \n";
            }

            Console.WriteLine(model.eventStart.ToString());

            Event newEvent = new Event()
            {
                //assigning values for events

                Summary     = (model.bandName + " " + model.eventStart.ToShortTimeString() + "-" + model.eventEnd.ToShortTimeString() + " $" + model.ticketPrice).ToUpper(),
                Location    = "137 Kerr St., Oakville, Ontario L6Z 3A6",
                Description = bandLink + " " + model.description,
                Start       = new EventDateTime()
                {
                    DateTime = DateTime.Parse("" + model.eventStart.Year + "-" + ((model.eventStart.Month < 10) ? ("0" + model.eventStart.Month) : model.eventStart.Month) + "-" +
                                              ((model.eventStart.Day < 10) ? ("0" + model.eventStart.Day) : model.eventStart.Day) + "T" +
                                              ((model.eventStart.Hour < 10) ? ("0" + model.eventStart.Hour) : model.eventStart.Hour) + ":" +
                                              ((model.eventStart.Minute < 10) ? ("0" + model.eventStart.Minute) : model.eventStart.Minute) + ":" +
                                              ((model.eventStart.Second < 10) ? ("0" + model.eventStart.Second) : model.eventStart.Second) + "-5:00"),
                    TimeZone = "America/Toronto"
                },
                End = new EventDateTime()
                {
                    DateTime = DateTime.Parse("" + model.eventEnd.Year + "-" + ((model.eventEnd.Month < 10) ? ("0" + model.eventEnd.Month) : model.eventEnd.Month) + "-" +
                                              ((model.eventEnd.Day < 10) ? ("0" + model.eventEnd.Day) : model.eventEnd.Day) + "T" +
                                              ((model.eventEnd.Hour < 10) ? ("0" + model.eventEnd.Hour) : model.eventEnd.Hour) + ":" +
                                              ((model.eventEnd.Minute < 10) ? ("0" + model.eventEnd.Minute) : model.eventEnd.Minute) + ":" +
                                              ((model.eventEnd.Second < 10) ? ("0" + model.eventEnd.Second) : model.eventEnd.Second) + "-5:00"),
                    TimeZone = "America/Toronto"
                },
            };

            try
            {
                service.Events.Update(newEvent, calendarId, foundEvent.googleCalID).Execute();
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to Delete on Google Calendar");
                return(BadRequest());
            }

            _context.Entry(foundEvent).CurrentValues.SetValues(model);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventExists(model.id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #4
0
        public async Task <ActionResult <Models.Event> > PostEvent(Models.Event @event)
        {
            string bandLink = "";

            if (@event.bandLink != null)
            {
                bandLink = "<a href=\"" + @event.bandLink + "\"> " + @event.bandName + "</a> \n";
            }
            //creating new event object based off of the Google API Event type
            Event newEvent = new Event()
            {
                //assigning values for events
                Summary     = (@event.bandName + " " + @event.eventStart.ToShortTimeString() + "-" + @event.eventEnd.ToShortTimeString() + " $" + @event.ticketPrice).ToUpper(),
                Location    = "137 Kerr St., Oakville, Ontario L6Z 3A6",
                Description = bandLink + " " + @event.description,
                Start       = new EventDateTime()
                {
                    DateTime = DateTime.Parse("" + @event.eventStart.Year + "-" + ((@event.eventStart.Month < 10) ? ("0" + @event.eventStart.Month) : @event.eventStart.Month) + "-" +
                                              ((@event.eventStart.Day < 10) ? ("0" + @event.eventStart.Day) : @event.eventStart.Day) + "T" +
                                              ((@event.eventStart.Hour < 10) ? ("0" + @event.eventStart.Hour) : @event.eventStart.Hour) + ":" +
                                              ((@event.eventStart.Minute < 10) ? ("0" + @event.eventStart.Minute) : @event.eventStart.Minute) + ":" +
                                              ((@event.eventStart.Second < 10) ? ("0" + @event.eventStart.Second) : @event.eventStart.Second) + "-5:00"),
                    TimeZone = "America/Toronto"
                },
                End = new EventDateTime()
                {
                    DateTime = DateTime.Parse("" + @event.eventEnd.Year + "-" + ((@event.eventEnd.Month < 10) ? ("0" + @event.eventEnd.Month) : @event.eventEnd.Month) + "-" +
                                              ((@event.eventEnd.Day < 10) ? ("0" + @event.eventEnd.Day) : @event.eventEnd.Day) + "T" +
                                              ((@event.eventEnd.Hour < 10) ? ("0" + @event.eventEnd.Hour) : @event.eventEnd.Hour) + ":" +
                                              ((@event.eventEnd.Minute < 10) ? ("0" + @event.eventEnd.Minute) : @event.eventEnd.Minute) + ":" +
                                              ((@event.eventEnd.Second < 10) ? ("0" + @event.eventEnd.Second) : @event.eventEnd.Second) + "-5:00"),
                    TimeZone = "America/Toronto"
                },
            };

            Console.WriteLine("EVENT START TIME GOOGLE CALENDAR");
            Console.WriteLine(newEvent.Start.DateTimeRaw);

            //Building request to insert the new event in the primary (default) calendar
            EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
            //Executes the request and assigns the response value to a variable to be used later

            try
            {
                Event createdEvent = request.Execute();
                @event.googleCalID = createdEvent.Id;
                _context.Events.Add(@event);
            }
            catch (Exception)
            {
                try
                {
                    service.Events.Update(newEvent, calendarId, newEvent.Id).Execute();
                    Console.WriteLine("Insert/Update new Event ");
                }
                catch (Exception)
                {
                    Console.WriteLine("can't Insert/Update new Event ");
                }
            }

            //Overwriting the default google Calendar ID that was assigned in admin-crud-event.components.ts (101,20)

            //Adding the new event with the official Google Calendar ID from GOOGLE to the Events

            //Save the new event
            await _context.SaveChangesAsync();

            //displaying the link to the created event for troubleshooting purposes
            //Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);
            //returns status code for event creation
            return(CreatedAtAction("GetEvent", new { id = @event.id }, @event));
        }