Example #1
0
        public async Task <ActionResult> DeletePollById([FromBody] JObject objJson)
        {
            try
            {
                if (string.IsNullOrEmpty(Convert.ToString(Request.Headers["api_key"])))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                string strUserId = UserLoginSessionKeys.GetUserIdByApiKey(_appDbContext, Guid.Parse(Request.Headers["api_key"]));
                if (string.IsNullOrEmpty(strUserId))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                GroupPoll objGroupPoll = _appDbContext.GroupPoll
                                         .Where(gp => gp.Id == Convert.ToInt32(objJson.SelectToken("grouppollid")))
                                         .FirstOrDefault();

                if (objGroupPoll == null)
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "GroupPoll " + Convert.ToString(objJson.SelectToken("grouppollid")) + " doesn’t exist" })));
                }
                else
                {
                    _appDbContext.GroupPoll.Remove(objGroupPoll);
                    int returnVal = await _appDbContext.SaveChangesAsync();

                    if (returnVal > 0)
                    {
                        return(Ok(new { Status = "OK", Detail = "Poll Deleted." }));
                    }
                    else
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support" })));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support", SystemError = ex.Message })));
            }
        }
Example #2
0
        public async Task <ActionResult> CreatePollForGroupEvent([FromBody] JObject objJson)
        {
            try
            {
                if (string.IsNullOrEmpty(Convert.ToString(Request.Headers["api_key"])))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                string strUserId = UserLoginSessionKeys.GetUserIdByApiKey(_appDbContext, Guid.Parse(Request.Headers["api_key"]));
                if (string.IsNullOrEmpty(strUserId))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                var objEvents = from e in _appDbContext.Events
                                where (e.Id == Convert.ToInt32(objJson.SelectToken("eventid")))
                                select e;

                if (objEvents.Count() <= 0)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Event doesn’t exist." })));
                }

                GroupPoll objGroupPoll = new GroupPoll();
                objGroupPoll.EventId = Convert.ToInt32(objJson.SelectToken("eventid"));
                //objGroupPoll.RestaurantName = Convert.ToString(objJson.SelectToken("restaurantname"));
                objGroupPoll.EventDate1 = Convert.ToDateTime(objJson.SelectToken("eventdate1"));
                DateTime dt;
                if (!DateTime.TryParseExact(Convert.ToString(objJson.SelectToken("eventtime1")), "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
                {
                    objGroupPoll.EventTime1 = TimeSpan.Parse("00:00");
                }
                else
                {
                    objGroupPoll.EventTime1 = dt.TimeOfDay;
                }
                objGroupPoll.EventDate2 = Convert.ToDateTime(objJson.SelectToken("eventdate2"));
                if (!DateTime.TryParseExact(Convert.ToString(objJson.SelectToken("eventtime2")), "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
                {
                    objGroupPoll.EventTime2 = TimeSpan.Parse("00:00");
                }
                else
                {
                    objGroupPoll.EventTime2 = dt.TimeOfDay;
                }
                objGroupPoll.StartDate   = DateTime.UtcNow;
                objGroupPoll.EndDate     = DateTime.UtcNow.AddHours(Convert.ToInt32(configuration.GetSection("appSettings").GetSection("PollEndHrs").Value));
                objGroupPoll.PollStatus  = "active";
                objGroupPoll.OwnerUserId = strUserId;
                //objGroupPoll.TiltCount = 0;
                objGroupPoll.CreatedDate = DateTime.UtcNow;
                await _appDbContext.GroupPoll.AddAsync(objGroupPoll);

                int returnVal = await _appDbContext.SaveChangesAsync();

                if (returnVal > 0)
                {
                    return(Ok(new { Status = "OK", Detail = "Poll created." }));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support" })));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support", SystemError = ex.Message })));
            }
        }
Example #3
0
        public async Task <ActionResult> UpdatePollInfoById([FromBody] JObject objJson)
        {
            try
            {
                if (string.IsNullOrEmpty(Convert.ToString(Request.Headers["api_key"])))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                string strUserId = UserLoginSessionKeys.GetUserIdByApiKey(_appDbContext, Guid.Parse(Request.Headers["api_key"]));
                if (string.IsNullOrEmpty(strUserId))
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "Invalid ApiKey" })));
                }

                var objGroupPollDetails = from gp in _appDbContext.GroupPoll
                                          where (gp.Id == Convert.ToInt32(objJson.SelectToken("grouppollid")) && gp.OwnerUserId == strUserId)
                                          select gp;

                if (objGroupPollDetails.Count() <= 0)
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized, (new { Status = "Error", Error = "GroupPoll " + Convert.ToString(objJson.SelectToken("grouppollid")) + " doesn’t exist or Invalid User." })));
                }

                GroupPoll objGroupPoll = new GroupPoll();
                objGroupPoll.Id = Convert.ToInt32(objJson.SelectToken("grouppollid"));
                //objGroupPoll.RestaurantName = Convert.ToString(objJson.SelectToken("restaurantname"));
                objGroupPoll.EventDate1 = Convert.ToDateTime(objJson.SelectToken("eventdate1"));
                DateTime dt;
                if (!DateTime.TryParseExact(Convert.ToString(objJson.SelectToken("eventtime1")), "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
                {
                    objGroupPoll.EventTime1 = TimeSpan.Parse("00:00");
                }
                else
                {
                    objGroupPoll.EventTime1 = dt.TimeOfDay;
                }
                objGroupPoll.EventDate2 = Convert.ToDateTime(objJson.SelectToken("eventdate2"));
                if (!DateTime.TryParseExact(Convert.ToString(objJson.SelectToken("eventtime2")), "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
                {
                    objGroupPoll.EventTime2 = TimeSpan.Parse("00:00");
                }
                else
                {
                    objGroupPoll.EventTime2 = dt.TimeOfDay;
                }
                objGroupPoll.StartDate       = Convert.ToDateTime(objJson.SelectToken("startdate"));
                objGroupPoll.EndDate         = Convert.ToDateTime(objJson.SelectToken("enddate"));
                objGroupPoll.LastUpdatedDate = DateTime.UtcNow;

                _appDbContext.GroupPoll.Attach(objGroupPoll);
                _appDbContext.Entry(objGroupPoll).Property("RestaurantName").IsModified  = true;
                _appDbContext.Entry(objGroupPoll).Property("EventDate1").IsModified      = true;
                _appDbContext.Entry(objGroupPoll).Property("EventTime1").IsModified      = true;
                _appDbContext.Entry(objGroupPoll).Property("EventDate2").IsModified      = true;
                _appDbContext.Entry(objGroupPoll).Property("EventTime2").IsModified      = true;
                _appDbContext.Entry(objGroupPoll).Property("StartDate").IsModified       = true;
                _appDbContext.Entry(objGroupPoll).Property("EndDate").IsModified         = true;
                _appDbContext.Entry(objGroupPoll).Property("LastUpdatedDate").IsModified = true;
                int returnVal = await _appDbContext.SaveChangesAsync();

                if (returnVal > 0)
                {
                    return(Ok(new { Status = "OK", Detail = "Poll updated." }));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support" })));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, (new { Status = "Error", Error = "Internal Server error. Please contact customer support", SystemError = ex.Message })));
            }
        }