Example #1
0
        public void InsertChallenge(RestAPIAddIdeaChallengeResponse response, string ChallengeName, int AddedByUserId)
        {
            DatabaseWrapper.databaseOperation(response,
                                              (context, query) =>
            {
                IdeaChallenge ideaChallenge = query.GetChallengeByName(context, ChallengeName);
                if (ideaChallenge == null)
                {
                    ideaChallenge = new IdeaChallenge()
                    {
                        ChallengeName = ChallengeName, CreatedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, AddedByUserId = AddedByUserId
                    };
                    query.AddIdeaChallenge(context, ideaChallenge);
                    response.Status = Enum.GetName(typeof(ResponseStatusType), ResponseStatusType.Success);
                }
                else
                {
                    response.Status = Enum.GetName(typeof(ResponseStatusType), ResponseStatusType.Failure);
                    response.ErrorList.Add(Faults.IdeaChallengeNameExists);
                    return;
                }
                context.SubmitChanges();
            }
                                              , readOnly: false
                                              );

            if (response == null && response.ErrorList.Count != 0)
            {
                response.ErrorList.Add(Faults.ServerIsBusy);
                return;
            }
        }
 public void AddIdeaChallenge(IIdeaDatabaseDataContext dc, IdeaChallenge ideaChallenge)
 {
     if (ideaChallenge != null)
     {
         dc.IdeaChallenges.Add(ideaChallenge);
     }
 }
        public void SubmitIdeaRequest(RestAPISubmitIdeaResponse response, SubmitIdeaRequest submitIdeaRequest, int UserId)
        {
            DatabaseWrapper.databaseOperation(response,
                                              (context, query) =>
            {
                Idea idea                   = new Idea();
                IdeaCategory category       = query.GetIdeaFromCategoryID(context, submitIdeaRequest.CategoryId);
                IdeaChallenge ideaChallenge = query.GetChallengeByID(context, submitIdeaRequest.ChallengeId);

                // insert category
                if (category != null)
                {
                    idea.IdeaCategory = category;
                }

                //insert challenge
                if (ideaChallenge != null)
                {
                    idea.ChallengeId = ideaChallenge.IdeaChallengeId;
                }

                //insert Ideacontributors
                if (!string.IsNullOrEmpty(submitIdeaRequest.IdeaContributors))
                {
                    List <string> contributors = GetContributorList(submitIdeaRequest.IdeaContributors);
                    List <User> userList       = query.GetUserByNames(context, contributors);

                    foreach (var user in userList)
                    {
                        idea.IdeaContributors.Add(new IdeaContributor()
                        {
                            IdeaId = idea.IdeaId, UserId = user.UserId, CreatedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow
                        });
                    }
                }

                //insert idea status
                IdeaStatusLog ideaStatusLog = new IdeaStatusLog()
                {
                    CreatedDate      = DateTime.UtcNow,
                    ModifiedByUserId = UserId,
                    IsActive         = true,
                    IdeaState        = submitIdeaRequest.IsDraft ? (int)IdeaStatusTypes.SubmitPending : (int)IdeaStatusTypes.ReviewPending
                };

                idea.IdeaStatusLogs.Add(ideaStatusLog);

                idea.Title          = submitIdeaRequest.Title;
                idea.Description    = submitIdeaRequest.Description;
                idea.IsActive       = true;
                idea.CreatedDate    = DateTime.UtcNow;
                idea.ModifiedDate   = DateTime.UtcNow;
                idea.BusinessImpact = submitIdeaRequest.BusinessImpact;
                idea.UserId         = UserId;
                idea.IsSensitive    = true;
                idea.Solution       = submitIdeaRequest.Solution;
                idea.IsDraft        = submitIdeaRequest.IsDraft;

                query.AddIdea(context, idea);
                context.SubmitChanges();
                response.IdeaId = idea.IdeaId;
                response.Status = Success;
            }
                                              , readOnly: false
                                              );

            if (response.ErrorList.Count != 0)
            {
                response.ErrorList.Add(Faults.ServerIsBusy);
            }
        }