Ejemplo n.º 1
0
        public JsonResult ChangeRequirementStatus(ChangeRequirementStatusViewModel vm)
        {
            var selectedRequirement = _requirementRepository.Get(vm.RequirementId);

            if (selectedRequirement != null)
            {
                selectedRequirement.RequirementStatus = vm.Status;
                selectedRequirement.UpdatedByUserId   = WebUser.Id;

                // Add it as an Activity
                var newActivity = new RequirementActivity
                {
                    Title         = vm.Status.ToString(),
                    Comment       = vm.Comment,
                    RequirementId = selectedRequirement.Id
                };

                AddRequirementActivity(newActivity);

                _requirementRepository.Update(selectedRequirement);
                _unitOfWork.Commit();

                return(Json(true));
            }

            return(Json(false));
        }
Ejemplo n.º 2
0
        public JsonResult SubmitProposal(ChangeRequirementViewModel vm)
        {
            var selectedRequirement = _requirementRepository.Get(vm.RequirementId);

            if (selectedRequirement != null)
            {
                selectedRequirement.RequirementStatus = RequirementStatus.Proposed;
                selectedRequirement.RespondedOn       = DateTime.UtcNow;
                selectedRequirement.UpdatedByUserId   = WebUser.Id;

                // Add it as an Activity
                var newActivity = new RequirementActivity
                {
                    Title         = "Proposed",
                    Comment       = vm.Comment,
                    RequirementId = selectedRequirement.Id
                };

                AddRequirementActivity(newActivity);

                _requirementRepository.Update(selectedRequirement);
                _unitOfWork.Commit();

                return(Json(true));
            }

            return(Json(false));
        }
Ejemplo n.º 3
0
        public JsonResult SubmitTechnicalReviewContent(ChangeRequirementViewModel vm)
        {
            var selectedRequirement = _requirementRepository.Get(vm.RequirementId);

            if (selectedRequirement != null)
            {
                selectedRequirement.RequirementStatus = RequirementStatus.TechnicalReviewCompleted;
                selectedRequirement.UpdatedByUserId   = WebUser.Id;

                // Add it as an Activity
                var newActivity = new RequirementActivity
                {
                    Title         = "Technical Review Submitted",
                    Comment       = vm.Comment,
                    RequirementId = selectedRequirement.Id
                };

                AddRequirementActivity(newActivity);

                _requirementRepository.Update(selectedRequirement);
                _unitOfWork.Commit();

                return(Json(true));
            }

            return(Json(false));
        }
Ejemplo n.º 4
0
        private void AddRequirementActivity(RequirementActivity newActivity)
        {
            newActivity.CreatedByUserId = WebUser.Id;

            _requirementActivityRepository.Create(newActivity);
            _unitOfWork.Commit();

            // Send Email, Email Template name is hard corded - Need to change later
            // Replace the hard coded emails with settings or a team.
            #if !DEBUG
            _emailComposerService.SendRequirementUpdateEmail(newActivity.Id);
            #endif
        }
Ejemplo n.º 5
0
        public ActionResult CreateActivity(RequirementActivityViewModel activity)
        {
            if (ModelState.IsValid)
            {
                var newActivity = new RequirementActivity
                {
                    Comment         = activity.NewComment,
                    RequirementId   = activity.Id,
                    CreatedByUserId = WebUser.Id
                };


                _requirementActivityRepository.Create(newActivity);
                _unitOfWork.Commit();
            }

            return(RedirectToAction("Details", new { id = activity.Id }));
        }
Ejemplo n.º 6
0
        public JsonResult AddNote(ChangeRequirementViewModel vm)
        {
            var selectedRequirement = _requirementRepository.Get(vm.RequirementId);

            if (selectedRequirement != null)
            {
                // Add it as an Activity
                var newActivity = new RequirementActivity
                {
                    Title         = vm.Title,
                    Comment       = vm.Comment,
                    RequirementId = selectedRequirement.Id,
                    CreatedOn     = vm.CreatedOn
                };

                AddRequirementActivity(newActivity, true);

                return(Json(true));
            }

            return(Json(false));
        }
Ejemplo n.º 7
0
        public ActionResult Create(NewRequirementViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var requirement = new Requirement
                {
                    AssignedToUserId = vm.AssignedToUserId,
                    ContactId        = vm.ContactId,
                    SourceId         = vm.SourceId,
                    CategoryId       = vm.CategoryId,
                    Title            = vm.Title,
                    Description      = vm.Description,
                    Url               = vm.Url,
                    BillingType       = vm.BillingType,
                    Budget            = vm.Budget,
                    PostedOn          = vm.PostedOn.ToUniversalTime(),
                    RequirementStatus = RequirementStatus.New,
                    CreatedByUserId   = WebUser.Id
                };


                _requirementRepository.Create(requirement);
                _unitOfWork.Commit();

                // Map the Technologies
                if (vm.TechnologyIds != null)
                {
                    foreach (var technologyId in vm.TechnologyIds)
                    {
                        var newMap = new RequirementTechnologyMap
                        {
                            RequirementId = requirement.Id,
                            TechnologyId  = technologyId
                        };

                        _requirementTechnologyMapRepository.Create(newMap);
                    }

                    _unitOfWork.Commit();
                }

                // Add the activities
                var postedActivity = new RequirementActivity
                {
                    Title           = "Posted in Source",
                    Comment         = "Requirement was posted",
                    RequirementId   = requirement.Id,
                    CreatedOn       = requirement.PostedOn.ToUniversalTime(),
                    CreatedByUserId = WebUser.Id
                };

                _requirementActivityRepository.Create(postedActivity);

                var createdActivity = new RequirementActivity
                {
                    Title           = "Created",
                    Comment         = WebUser.Name + " created the requirement in Grid",
                    RequirementId   = requirement.Id,
                    CreatedByUserId = WebUser.Id
                };

                _requirementActivityRepository.Create(createdActivity);

                _unitOfWork.Commit();


                // Send Email, Email Template name is hard corded - Need to change later
                // Replace the hard coded emails with settings or a team.
                #if !DEBUG
                _emailComposerService.SendNewRequirementEmail(requirement.Id);
                #endif

                return(RedirectToAction("Details", "Requirements", new { id = requirement.Id }));
            }

            ViewBag.Technologies     = new MultiSelectList(_technologyRepository.GetAll(), "Id", "Title", vm.TechnologyIds);
            ViewBag.AssignedToUserId = new SelectList(_userRepository.GetAll("Person"), "Id", "Person.Name", vm.AssignedToUserId);
            ViewBag.ContactId        = new SelectList(_crmContactRepository.GetAll("Person"), "Id", "Person.Name", vm.ContactId);
            ViewBag.CategoryId       = new SelectList(_requirementCategoryRepository.GetAll(), "Id", "Title", vm.CategoryId);
            ViewBag.SourceId         = new SelectList(_crmLeadSourceRepository.GetAll(), "Id", "Title", vm.SourceId);

            return(View(vm));
        }