상속: IncidentAddRequest
        public HttpResponseMessage SendComplaint(IncidentAddRequest model)
        {
            HttpResponseMessage resp = null;
            try 
            {
                //ComplaintStatusType status = ComplaintStatusType.NotSet;

                //Check location and category of tweet to see if complaint already exists
                //WehackDataService service = new WehackDataService();
                IncidentResponse incident = /*service*/_wehackDataService.CreateComplaint(model);

                if (incident == null || incident.TweetId == null)
                {
                    //get auth context

                    //create tweet
                    //assign tweetId back to database
                    //template: @riadosaband Issue #93 Pothole! 33.940109, -118.133159 #lahasissues
                    var categoryString = model.categoryId == 1 ? "Pothole" : "Streetlight";
                    var tweet = "@riadosaband " + categoryString + " #" + incident.IncidentId.ToString() + " " + model.Lat + ", " + model.Lng + " #lahasissues";

                    TwitterActionController contrlr = new TwitterActionController();

                    contrlr.Send(tweet);

                    incident.TweetId = 688120489823186944;  //<--- this is for testing!!

                    //assign tweetId back to database; update tweet; use UPDATE stored proc
                    IncidentUpdateRequest iur = new IncidentUpdateRequest();
                    iur.TweetId = (long)incident.TweetId; //3333333333;
                    iur.IncidentId = incident.IncidentId;
                    _wehackDataService.UpdateComplaint(iur);
                }
                else 
                {
                    //retweet existing tweet
                }
                //ComplaintModel existingComplaint = WehackDataService.GetComplaint(model);

                //if(existingComplaint == null) { WehackDataService.CreateComplaint(model); }
                //  else { 
                        //bool userIsAdmin = WehackDataService.CheckIfUserAdmin(model.userId);
                        //if(userisAdmin) 
                        //{
                        //      status = model.Message.ParseStatus();
                        //      if(status == ComplaintStatusType.Resolved) { WehackDataService.SendResolve(existingComplaint); }
                        //}
                        //else
                            //TwitterService.Retweet(existingComplaint); 
                //}

                resp = Request.CreateResponse(HttpStatusCode.OK);
            }
            catch (Exception ex)
            {
                resp = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
            }

            return resp;
        }
예제 #2
0
        public void UpdateComplaint(IncidentUpdateRequest model/*, long tweetId*/)
        {
            //var id = 0;

            List<SqlParameter> collection = new List<SqlParameter>();
            collection.Add(CreateParameter("@Id", model.IncidentId, SqlDbType.Int, ParameterDirection.Output));
            collection.Add(CreateParameter("@tweetId", model.TweetId, SqlDbType.BigInt, ParameterDirection.Input));

            ExecuteNonQuery("wehackdb", "dbo.update_tweetId", collection);

            //id = (int)collection.FirstOrDefault(x => x.ParameterName == "@userId").SqlValue;

            //IncidentResponse resp = new IncidentResponse();
            //resp.TweetId = (long)collection.FirstOrDefault(x => x.ParameterName == "@TweetId").SqlValue;
            //resp.IncidentId = (int)collection.FirstOrDefault(x => x.ParameterName == "@IncidentId").SqlValue;

            //return resp;
        }