Esempio n. 1
0
        public async Task <IHttpActionResult> NewAnswer([FromBody] Answer a)
        {
            var user = await _repository.GetUserByEmailAsync(a.UserName);

            if (user != null)
            {
                a.UserId = user.UserId;
            }
            else
            {
                a.UserId = new Guid("00000000-0000-0000-0000-000000000000");
            }
            //to do   alert user not found
            a.UpdateDate = DateTime.Now;

            Question questionSource = _repository.GetQuestion(a.QuestionSource.Id);

            ////aaaaaaa
            questionSource.AnswersCount++;

            a.QuestionSource = questionSource;
            RepositoryActionResult <Answer> result = _repository.AddAnswer(a);

            ///
            switch (result.Status)
            {
            case RepositoryActionStatus.Created:
            {
                int    newID       = result.Entity.Id;
                String UserId      = result.Entity.UserId.ToString();
                String UserName    = result.Entity.UserName;
                String Description = result.Entity.Description;
                String UpdateDate  = result.Entity.UpdateDate.HasValue ? result.Entity.UpdateDate.Value.ToShortDateString() : "";
                return(Content(System.Net.HttpStatusCode.OK, newID + "*" + UserId + "*" + UserName + "*" + Description + "*" + UpdateDate));
            }

            case RepositoryActionStatus.NothingModified:
                return(Content(System.Net.HttpStatusCode.OK, "Risultato Not Modified?"));    //TODO have I to return OK?

            case RepositoryActionStatus.Error:
                return(Content(System.Net.HttpStatusCode.InternalServerError, result.Exception.InnerException.Message));

            default:
                break;
            }
            return(Content(System.Net.HttpStatusCode.Ambiguous, result.Status.ToString() + "  " + result.Entity.Description));
        }