public void AddIdeaStatus(IIdeaDatabaseDataContext dc, IdeaStatusLog ideaState)
 {
     if (ideaState != null)
     {
         dc.IdeaStatusLogs.Add(ideaState);
     }
 }
 public RESTAPIStatusInterchange(IdeaStatusLog ideaState)
 {
     if (ideaState != null)
     {
         IdeaStatusId     = ideaState.IdeaStatusLogId;
         Status           = ideaState.IdeaState;
         CreatedDate      = ideaState.CreatedDate;
         ModifiedByUserID = ideaState.ModifiedByUserId;
     }
 }
Esempio n. 3
0
        public void InsertStatus(RestAPIAddIdeaStateResponse response, int IdeaID, int ideaState, int UserId)
        {
            DatabaseWrapper.databaseOperation(response,
                                              (context, query) =>
            {
                IdeaStatusLog ideaStatusLog = null;
                Idea idea = query.GetIdeaById(context, IdeaID);
                idea.IdeaStatusLogs.ToList().ForEach(x => x.IsActive = false);

                ideaStatusLog = new IdeaStatusLog()
                {
                    IdeaId = IdeaID, IdeaState = ideaState, ModifiedByUserId = UserId, CreatedDate = DateTime.UtcNow, IsActive = true
                };
                query.AddIdeaStatusHistory(context, ideaStatusLog);

                ideaAssignmentUtils.SubmitIdeaAssignments(response, UserId, IdeaID, ideaState);
                context.SubmitChanges();
            }
                                              , readOnly: false
                                              );
        }
 public void AddIdeaStatusHistory(IIdeaDatabaseDataContext dc, IdeaStatusLog ideaState)
 {
     dc.IdeaStatusLogs.Add(ideaState);
 }
        public RestAPIAddIdeaStateResponse InsertIdeaStatus(RestAPIAddIdeaStateResponse response, int IdeaID, int UserId)
        {
            IdeaStatusLog      ideaStatusLog = null;
            List <RoleMapping> roleMappings  = new List <RoleMapping>();
            int  ideaState = 0;
            bool result    = false;

            RestAPIAddIdeaStateResponse restapiaddidearesponse = new RestAPIAddIdeaStateResponse();

            DatabaseWrapper.databaseOperation(response,
                                              (context, query) =>
            {
                ideaStatusLog = query.GetIdeaStatusByIdeaId(context, IdeaID);
                roleMappings  = query.GetUserRoleMappings(context, UserId);

                if (roleMappings.Count > 0)
                {
                    foreach (var role in roleMappings)
                    {
                        if (ideaStatusLog.IdeaState == (int)IdeaStatusTypes.ReviewPending)
                        {
                            if (role.RoleId == 3)
                            {
                                result = true;
                            }
                        }
                        if (ideaStatusLog.IdeaState == (int)IdeaStatusTypes.SponsorPending)
                        {
                            if (role.RoleId == 4)
                            {
                                result = true;
                            }
                        }
                    }
                }
                if (result == false)
                {
                    response.ErrorList.Add(Faults.InsufficientPermissions);
                    return;
                }

                if (ideaStatusLog.IdeaState == (int)IdeaStatusTypes.ReviewPending)
                {
                    ideaState = (int)IdeaStatusTypes.SponsorPending;
                    restapiaddidearesponse.IdeaState = EnumDescriptor.GetEnumDescription(IdeaStatusTypes.SponsorPending);
                }
                else if (ideaStatusLog.IdeaState == (int)IdeaStatusTypes.SponsorPending)
                {
                    ideaState = (int)IdeaStatusTypes.Sponsored;
                    restapiaddidearesponse.IdeaState = EnumDescriptor.GetEnumDescription(IdeaStatusTypes.Sponsored);
                }
                else
                {
                    response.ErrorList.Add(Faults.InvalidIdeaStatus);
                    response.Status = Failure;
                    return;
                }

                statusUtils.InsertStatus(response, IdeaID, ideaState, UserId);
                context.SubmitChanges();

                response.Status = Success;
            }
                                              , readOnly: false
                                              );

            if (response == null && response.ErrorList.Count != 0)
            {
                response.ErrorList.Add(Faults.ServerIsBusy);
            }
            return(response);
        }
        public void UpdateIdeaDraft(RestAPIUpdateDraftResponse response, RestAPIUpdateIdeaDraftRequest request, int UserID)
        {
            DatabaseWrapper.databaseOperation(response,
                                              (context, query) =>
            {
                Idea idea = query.GetIdeaById(context, request.IdeaId);
                if (idea != null)
                {
                    if (!string.IsNullOrEmpty(request.Title))
                    {
                        idea.Title = request.Title;
                    }
                    if (!string.IsNullOrEmpty(request.Description))
                    {
                        idea.Description = request.Description;
                    }
                    if (!string.IsNullOrEmpty(request.BusinessImpact))
                    {
                        idea.BusinessImpact = request.BusinessImpact;
                    }
                    if (!string.IsNullOrEmpty(request.Solution))
                    {
                        idea.Solution = request.Solution;
                    }
                    if (request.ChallengeId.GetValueOrDefault(0) != 0)
                    {
                        idea.ChallengeId = request.ChallengeId;
                    }
                    if (request.CategoryId.GetValueOrDefault(0) != 0)
                    {
                        idea.CategoryId = request.CategoryId;
                    }

                    idea.IsDraft      = request.IsDraft;
                    idea.ModifiedDate = DateTime.UtcNow;

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

                    idea.IdeaStatusLogs.Add(ideaStatusLog);

                    context.SubmitChanges();
                    response.Status = Success;
                }
                else
                {
                    response.ErrorList.Add(Faults.IdeaNotFound);
                    response.Status = Failure;
                }
            }
                                              , readOnly: false
                                              );

            if (response == null && response.ErrorList.Count != 0)
            {
                response.ErrorList.Add(Faults.ServerIsBusy);
            }
        }
        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);
            }
        }