// // CalendarController.cs // // Author: // Paul Schneider // // Copyright (c) 2015 Paul Schneider // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . using System; using System.Web.Http; using Yavsc.Model.RolesAndMembers; using System.Web.Security; using Yavsc.Model.Google; using Yavsc.Helpers; using System.Web.Profile; using Yavsc.Model.Circles; using Yavsc.Model.Calendar; using System.Web.Http.Routing; using System.Collections.Generic; namespace Yavsc.ApiControllers { /// /// Night flash controller. /// public class CalendarController: ApiController { YaEvent[] getTestList() { return new YaEvent[] { new YaEvent () { Description = "Test Descr", Title = "Night club special bubble party", Location = new Position () { Longitude = 0, Latitude = 0 } }, new YaEvent () { Title = "Test2", Photo = "http://bla/im.png", Location = new Position () { Longitude = 0, Latitude = 0 } }, new YaEvent () { Description = "Test Descr", Title = "Night club special bubble party", Location = new Position () { Longitude = 0, Latitude = 0 } }, new YaEvent () { Title = "Test2", Photo = "http://bla/im.png", Location = new Position () { Longitude = 0, Latitude = 0 } } }; } /// /// List events according the specified search arguments. /// /// Arguments. [ValidateAjaxAttribute] [HttpGet] public YaEvent[] List ([FromUri] PositionAndKeyphrase args) { return getTestList(); } /// /// Provider the specified ProviderId. /// /// Provider identifier. [HttpGet] public ProviderPublicInfo ProviderInfo ([FromUri] string ProviderId) { return new ProviderPublicInfo () { DisplayName = "Yavsc clubing", WebPage = "http://yavsc.pschneider.fr/", Calendar = new Schedule () { Period = Periodicity.ThreeM, WeekDays = new OpenDay[] { new OpenDay () { Day = WeekDay.Saturday, Start = new TimeSpan(18,00,00), End = new TimeSpan(2,00,00) } }, Validity = new Period[] { new Period() { Start = new DateTime(2015,5,29), End = new DateTime(2015,5,30)} } }, Description = "Yavsc Entertainment Production, Yet another private party", LogoImgLocator = "http://yavsc.pschneider.fr/favicon.png", Location = new Position () { Longitude = 0, Latitude = 0 }, LocationType = "Salle des fêtes" }; } /// /// Posts the image. /// /// The image. /// NF prov identifier. public string PostImage([FromUri] string NFProvId) { return null; } /// /// Posts the event. /// /// The event identifier. /// Ev. public int PostEvent ([FromBody] ProvidedEvent ev) { throw new NotImplementedException(); } /// /// Registers with push notifications enabled. /// /// Model. [ValidateAjax] public void RegisterWithPushNotifications(GCMRegisterModel model) { if (ModelState.IsValid) { MembershipCreateStatus mcs; var user = Membership.CreateUser ( model.UserName, model.Password, model.Email, null, null, false, out mcs); switch (mcs) { case MembershipCreateStatus.DuplicateEmail: ModelState.AddModelError ("Email", "Cette adresse e-mail correspond " + "à un compte utilisateur existant"); break; case MembershipCreateStatus.DuplicateUserName: ModelState.AddModelError ("Author", "Ce nom d'utilisateur est " + "déjà enregistré"); break; case MembershipCreateStatus.Success: Url.SendActivationMessage (user); // TODO set registration id throw new NotImplementedException (); } } } } }