Example #1
0
        public async Task <HttpResponseMessage> Insert(ContentFlagAddRequest model, string aspNetUserId)
        {
            int ReportedByMemberId = _memberProfileService.GetCurrentMemberProfile().Id;
            int MemberProfileId    = _memberProfileService.GetMemberProfileByAspNetUserId(aspNetUserId).Id;

            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ModelState));
            }
            SuccessResponse response             = new SuccessResponse();
            ItemsResponse <AdminSettings> notify = new ItemsResponse <AdminSettings>();

            try
            {
                notify.Items = _adminService.SelectByNotifications();
                _contentFlagService.Insert(ReportedByMemberId, MemberProfileId, model.FlagTypeId);

                foreach (AdminSettings item in notify.Items)
                {
                    if (item.FlagEmail == true)
                    {
                        await _sendEmailService.SendEmailFlaggedContent(item.Email);
                    }
                    if (item.FlagText == true)
                    {
                        string message = "A new content has been flagged! Please login and regulate!";
                        _smsService.SendSms(item.PhoneNumber, message);
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }