public async Task CreatePostReturnsNotFoundForInvalidSession()
        {
            var newIdea  = new NewIdeaDto("Name", "Description", 123);
            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
        public async Task CreatePostReturnsNotFoundForInvalidSession()
        {
            var newIdea = new NewIdeaDto("Name", "Description", 123);
            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
        public async Task CreatePostReturnsBadRequestForSessionIdValueTooLarge()
        {
            var newIdea  = new NewIdeaDto("Name", "Description", 1000001);
            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);

            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task CreatePostReturnsBadRequestForSessionIdValueTooSmall()
        {
            // Arrange
            var newIdea = new NewIdeaDto("Name", "Description", 0);

            // Act
            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);

            // Assert
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
Example #5
0
        public HttpResponseMessage SendNewIdea(NewIdeaDto idea)
        {
            var res = _business.SendNewIdea(idea);

            if (res.Value == true)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, res.Content));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, res.Content));
            }
        }
        public async Task CreatePostReturnsCreatedIdeaWithCorrectInputs()
        {
            var testIdeaName = Guid.NewGuid().ToString();
            var newIdea      = new NewIdeaDto(testIdeaName, "Description", 1);

            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);

            response.EnsureSuccessStatusCode();

            var returnedSession = await response.Content.ReadAsJsonAsync <BrainstormSession>();

            Assert.Equal(2, returnedSession.Ideas.Count);
            Assert.True(returnedSession.Ideas.Any(i => i.Name == testIdeaName));
        }
        //-------------------------------------------------------------------------------------------------
        public Result SendNewIdea(NewIdeaDto idea)
        {
            Result result = new Result();

            if (
                idea.Advantages == null ||
                idea.CurrentSituation == null ||
                idea.Prerequisite == null ||
                idea.Steps == null ||
                idea.Title == null ||
                idea.Username == null
                )
            {
                result.Value   = false;
                result.Content = "همه‌ی بخش‌های اجباری پر نشده است";
                return(result);
            }
            return(_Repository.SendNewIdea(idea));
        }
        //-----------------------------------------------------------------------------------------------------------
        public Result SendNewIdea(NewIdeaDto newIdea)
        {
            Result result = new Result();

            using (_db = new IdeaManagmentDatabaseEntities())
            {
                IDEA idea = new IDEA()
                {
                    USERNAME          = newIdea.Username,
                    TITLE             = newIdea.Title,
                    SAVE_DATE         = DateTime.Now,
                    ADVANTAGES        = newIdea.Advantages,
                    PREREQUISITE      = newIdea.Prerequisite,
                    STEPS             = newIdea.Steps,
                    CURRENT_SITUATION = newIdea.CurrentSituation
                };
                _db.IDEAS.Add(idea);
                _db.SaveChanges();
                result.Value   = true;
                result.Content = "ایده جدید ایجاد شد";
            }
            return(result);
        }
Example #9
0
        //-----------------------------------------------------------------------------------------------------------
        public Result SendNewIdea(NewIdeaDto newIdea)
        {
            Result result = new Result();

            using (_db = new IdeaManagmentDatabaseEntities())
            {
                IDEA idea = new IDEA()
                {
                    USERNAME          = newIdea.USERNAME,
                    TITLE             = newIdea.TITLE,
                    SAVE_DATE         = DateTime.Now,
                    ADVANTAGES        = newIdea.ADVANTAGES,
                    PREREQUISITE      = newIdea.PREREQUISITE,
                    STEPS             = newIdea.STEPS,
                    CURRENT_SITUATION = newIdea.CURRENT_SITUATION
                };
                _db.IDEAS.Add(idea);
                _db.SaveChanges();
                result.value   = true;
                result.content = "ایده جدید ایجاد شد";
                return(result);
            }
        }
        public IActionResult UpdateIdea(int id, NewIdeaDto updatedValues)
        {
            try
            {
                _unitOfWorkManager.StartUnitOfWork();
                Idea updatedIdea = _ideationManager.ChangeIdea(
                    id,
                    updatedValues.Title,
                    updatedValues.IdeationId);
                _unitOfWorkManager.EndUnitOfWork();

                if (updatedIdea == null)
                {
                    return(BadRequest("Something went wrong while updating the idea."));
                }

                return(Ok(_mapper.Map <IdeaMinDto>(updatedIdea)));
            }
            catch (ValidationException ve)
            {
                return(UnprocessableEntity($"Invalid input data: {ve.ValidationResult.ErrorMessage}"));
            }
            catch (ArgumentException e)
            {
                switch (e.ParamName)
                {
                case "id":
                    return(NotFound(e.Message));

                case "ideationId":
                    return(UnprocessableEntity(e.Message));

                default:
                    return(BadRequest(e.Message));
                }
            }
        }
 //-------------------------------------------------------------------------------------------------
 public Result SendNewIdea(NewIdeaDto idea)
 {
     return(_Repository.SendNewIdea(idea));
 }
        public async Task <IActionResult> PostNewIdea([FromForm] NewIdeaDto idea, [FromRoute] string orgId)
        {
            if (idea.Texts.IsNullOrEmpty() && idea.Images.IsNullOrEmpty())
            {
                return(BadRequest("Either images or text content should be provided."));
            }

            try
            {
                // UoW is started here to make sure the request either fails or succeeds fully
                _unitOfWorkManager.StartUnitOfWork();

                Idea createdIdea = _ideationManager.AddIdea(
                    idea.Title,
                    idea.IdeationId);
                _userManager.AddIdeaToUser(createdIdea, idea.UserId);

                foreach (var video in idea.Videos)
                {
                    string imgLocation = await _fileService.ConvertFileToLocation(video);

                    _ideationManager.AddFieldToIdea(FieldType.Video, imgLocation, createdIdea.IdeaId);
                }

                foreach (var image in idea.Images)
                {
                    string imgLocation = await _fileService.ConvertFileToLocation(image);

                    _ideationManager.AddFieldToIdea(FieldType.Picture, imgLocation, createdIdea.IdeaId);
                }

                foreach (var textfield in idea.Texts)
                {
                    _ideationManager.AddFieldToIdea(FieldType.Text, textfield, createdIdea.IdeaId);
                }

                foreach (var location in idea.Locations)
                {
                    _ideationManager.AddFieldToIdea(FieldType.Location, location, createdIdea.IdeaId);
                }

                foreach (var link in idea.Links)
                {
                    _ideationManager.AddFieldToIdea(FieldType.Link, link, createdIdea.IdeaId);
                }

                _unitOfWorkManager.EndUnitOfWork();

                return(CreatedAtAction(
                           "GetIdea",
                           new { orgId, id = createdIdea.IdeaId },
                           _mapper.Map <IdeaMinDto>(createdIdea)));
            }
            catch (ValidationException ve)
            {
                return(UnprocessableEntity($"Invalid input data: {ve.ValidationResult.ErrorMessage}"));
            }
            catch (Exception e)
            {
                return(BadRequest($"Something went wrong in creating the idea: {e.Message}."));
            }
        }
        public async Task CreatePostReturnsCreatedIdeaWithCorrectInputs()
        {
            var testIdeaName = Guid.NewGuid().ToString();
            var newIdea = new NewIdeaDto(testIdeaName, "Description", 1);
           
            var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);
            response.EnsureSuccessStatusCode();

            var returnedSession = await response.Content.ReadAsJsonAsync<BrainstormSession>();
            Assert.Equal(2, returnedSession.Ideas.Count);
            Assert.True(returnedSession.Ideas.Any(i => i.Name == testIdeaName));
        }
 public async Task CreatePostReturnsBadRequestForSessionIdValueTooLarge()
 {
     var newIdea = new NewIdeaDto("Name", "Description", 1000001);
     var response = await _client.PostAsJsonAsync("/api/ideas/create", newIdea);
     Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
 }