Example #1
0
        /// <summary>
        /// GET /events/{id}. 
        /// • retrieves the profile of an individual Event
        /// • "id" is Event.id
        /// • authentication is required if this is not a public event - user must then be admin,
        /// member or follower
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Events(int? id)
        {
            #region initial steps
            Response.ContentType = Assistant.JsonMimeType;
            if (!CheckAuthentication(UserRole.Any))
            {
                Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return Json(Assistant.ErrorUnauthorized, JsonRequestBehavior.AllowGet);
            }
            #endregion

            JsonResult jr;
            SedogoEvent sevent;
            int? e = PrepareForEvent(id, out jr, out sevent);
            if (!e.HasValue)
                return jr;

            //everything is fine, let's create a model and return it in JSON
            var model = new EventModel {
                id = sevent.eventID,
                created = sevent.createdDate,
                updated = sevent.lastUpdatedDate,
                name = sevent.eventName,
                user = sevent.userID,
                venue = sevent.eventVenue,
                description = sevent.eventDescription,
                mustDo = sevent.mustDo,
                dateType = sevent.dateType,
                start = (sevent.startDate.Ticks>0)?sevent.startDate : (DateTime?)null,
                rangeStart = (sevent.rangeStartDate.Ticks>0)?sevent.rangeStartDate:(DateTime?)null,
                rangeEnd = (sevent.rangeEndDate.Ticks>0)?sevent.rangeEndDate:(DateTime?)null,
                beforeBirthday = (sevent.beforeBirthday),   //optional!!!
                achieved = sevent.eventAchieved,
                Private = sevent.privateEvent,
                category = sevent.categoryID,   //optional!!
                createdFromEvent = sevent.createdFromEventID, //optional!!
                timezone = sevent.timezoneID,
                image = sevent.eventPicFilename,
                imageThumbnail = sevent.eventPicThumbnail,
                imagePreview = sevent.eventPicPreview

            };
            return Json(model.GetDetails(), JsonRequestBehavior.AllowGet);
        }
Example #2
0
        /// <summary>
        /// Attempts to create a model using input parameters. If some parameters are missing, and a model can not be created, an output error parameter 
        /// contains an error message
        /// </summary>
        /// <param name="name"></param>
        /// <param name="user"></param>
        /// <param name="venue"></param>
        /// <param name="description"></param>
        /// <param name="mustDo"></param>
        /// <param name="dateType"></param>
        /// <param name="start"></param>
        /// <param name="rangeStart"></param>
        /// <param name="rangeEnd"></param>
        /// <param name="beforeBirthday"></param>
        /// <param name="achieved"></param>
        /// <param name="Private"></param>
        /// <param name="category"></param>
        /// <param name="createdFromEvent"></param>
        /// <param name="timezone"></param>
        /// <param name="image"></param>
        /// <param name="imageThumbnail"></param>
        /// <param name="imagePreview"></param>
        /// <param name="LastUpdatedByFullName"></param>
        /// <param name="CreatedByFullName"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static EventModel CreateEventModel(string name,
            int? user,string venue,string description,bool? mustDo,string dateType,DateTime? start, DateTime? rangeStart, DateTime? rangeEnd,
            int? beforeBirthday, bool? achieved, bool? Private, int? category,int? createdFromEvent, int? timezone,
            string image,string imageThumbnail, string imagePreview, string LastUpdatedByFullName,  string CreatedByFullName, out string error)
        {
            error = null;
            if (string.IsNullOrEmpty(name))
                error = "name-attribute-required";
            else if (!user.HasValue)
                error = "user-attribute-required";
            else if (!mustDo.HasValue)
                error = "mustDo-attribute-required";
            else if(string.IsNullOrEmpty(dateType))
                error = "dateType-attribute-required";
            else if( !achieved.HasValue)
                error="achieved-attribute-required";
            else if(!Private.HasValue)
                error = "private-attribute-required";
            else if(!timezone.HasValue)
                error = "timezone-attribute-required";

            if (!string.IsNullOrEmpty(error))
                return null;

            EventModel model = new EventModel {
                created = DateTime.Now,
                updated = DateTime.Now,

                name = name,
                user = user.Value,
                venue = venue,
                description = description,
                mustDo = mustDo.Value,
                dateType = dateType,
                start = start,
                rangeStart = rangeStart,
                rangeEnd = rangeEnd,
                beforeBirthday = beforeBirthday,
                achieved = achieved.Value,
                Private = Private.Value,
                category = category,
                createdFromEvent = createdFromEvent,
                timezone = timezone.Value,
                image = image,
                imageThumbnail = imageThumbnail,
                imagePreview = imagePreview,
                LastUpdatedByFullName = LastUpdatedByFullName,
                CreatedByFullName = CreatedByFullName
            };

            return model;
        }
Example #3
0
        /// <summary>
        /// Create a business object for events using the model as the source of details
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static SedogoEvent CreateEventBO(EventModel model)
        {
            SedogoEvent eventBO = new SedogoEvent(model.CreatedByFullName);
            eventBO.eventName = model.name;
            eventBO.userID = model.user;
            eventBO.eventVenue = model.venue;
            eventBO.eventDescription = model.description;
            eventBO.mustDo = model.mustDo;
            eventBO.dateType = model.dateType;
            if(model.start.HasValue) eventBO.startDate = model.start.Value;
            if(model.rangeStart.HasValue) eventBO.rangeStartDate = model.rangeStart.Value;
            if(model.rangeEnd.HasValue) eventBO.rangeEndDate = model.rangeEnd.Value ;
            if(model.beforeBirthday.HasValue)eventBO.beforeBirthday = model.beforeBirthday.Value;
            eventBO.eventAchieved = model.achieved;
            eventBO.privateEvent = model.Private;
            if(model.category.HasValue) eventBO.categoryID = model.category.Value;
            if (model.createdFromEvent.HasValue) eventBO.createdFromEventID = model.createdFromEvent.Value;
            eventBO.timezoneID = model.timezone;
            if (!string.IsNullOrEmpty(model.image)) eventBO.eventPicFilename = model.image;
            if (!string.IsNullOrEmpty(model.imageThumbnail)) eventBO.eventPicThumbnail = model.imageThumbnail;
            if (!string.IsNullOrEmpty(model.imagePreview)) eventBO.eventPicPreview = model.imagePreview;

            return eventBO;
        }