private ProveedoresOnLine.SurveyModule.Models.SurveyModel GetSurveyUpsertRequest(string SurveyPublicId)
        {
            //get current survey values
            ProveedoresOnLine.SurveyModule.Models.SurveyModel oSurvey =
                ProveedoresOnLine.SurveyModule.Controller.SurveyModule.SurveyGetById(SurveyPublicId);

            ProveedoresOnLine.SurveyModule.Models.SurveyModel oSurveyToUpsert = new ProveedoresOnLine.SurveyModule.Models.SurveyModel()
            {
                SurveyPublicId    = oSurvey.SurveyPublicId,
                RelatedSurveyItem = new List <ProveedoresOnLine.SurveyModule.Models.SurveyItemModel>(),
                SurveyInfo        = new List <GenericItemInfoModel>(),
            };

            #region get request infos

            Request.Form.AllKeys.Where(req => req.Contains("SurveyInfo_")).All(req =>
            {
                string[] strAux = req.Split('_');

                if (strAux.Length >= 2)
                {
                    int oSurveyInfoTypeId = Convert.ToInt32(strAux[1].Replace(" ", ""));
                    int oSurveyInfoId     = strAux.Length >= 3 && !string.IsNullOrEmpty(strAux[2]) ? Convert.ToInt32(strAux[2].Replace(" ", "")) : 0;

                    oSurveyToUpsert.SurveyInfo.Add(new GenericItemInfoModel()
                    {
                        ItemInfoId   = oSurveyInfoId,
                        ItemInfoType = new CatalogModel()
                        {
                            ItemId = oSurveyInfoTypeId,
                        },
                        Value  = Request[req].Replace(" ", ""),
                        Enable = true,
                    });
                }
                return(true);
            });

            #endregion get request infos

            #region get request answers

            //loop request for update answers
            Request.Form.AllKeys.Where(req => req.Contains("SurveyItem_")).All(req =>
            {
                string[] strAux = req.Split('_');

                #region Answers

                if (strAux.Length >= 2)
                {
                    int oSurveyConfigItemId = Convert.ToInt32(strAux[1].Replace(" ", ""));

                    ProveedoresOnLine.SurveyModule.Models.SurveyItemModel oSurveyItem = oSurvey.RelatedSurveyItem.
                                                                                        Where(sit => sit.RelatedSurveyConfigItem.ItemId == oSurveyConfigItemId).
                                                                                        FirstOrDefault();

                    ProveedoresOnLine.SurveyModule.Models.SurveyItemModel oSurveyItemToUpsert = new ProveedoresOnLine.SurveyModule.Models.SurveyItemModel()
                    {
                        ItemId = oSurveyItem != null ? oSurveyItem.ItemId : 0,
                        RelatedSurveyConfigItem = new ProveedoresOnLine.Company.Models.Util.GenericItemModel()
                        {
                            ItemId = oSurveyConfigItemId,
                        },
                        Enable          = true,
                        EvaluatorRoleId = SessionManager.SessionController.POLMarketPlace_MarketPlaceUserLogin.RelatedCompany.FirstOrDefault().RelatedUser.
                                          Where(y => y.RelatedCompanyRole.RoleCompanyId != 0).Select(y => y.UserCompanyId).FirstOrDefault(),

                        ItemInfo = new List <GenericItemInfoModel>()
                        {
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.Ratting)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.Ratting).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.Ratting,
                                },
                                Value = oSurvey.RelatedSurveyConfig.RelatedSurveyConfigItem.
                                        Where(scit => scit.ItemType.ItemId == (int)enumSurveyConfigItemType.Answer &&
                                              scit.ItemId.ToString() == Request[req].Replace(" ", "")).
                                        Select(scit => scit.ItemInfo.
                                               Where(scitinf => scitinf.ItemInfoType.ItemId == (int)enumSurveyConfigItemInfoType.Weight).
                                               Select(scitinf => Convert.ToInt32(scitinf.Value)).
                                               DefaultIfEmpty(0).
                                               FirstOrDefault()).
                                        DefaultIfEmpty(0).
                                        FirstOrDefault().ToString(),
                                Enable = true,
                            },
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.Answer)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.Answer).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.Answer,
                                },
                                Value  = Request[req],
                                Enable = true,
                            },
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.DescriptionText)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.DescriptionText).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.DescriptionText,
                                },
                                Value  = Request["SurveyItemText_" + oSurveyConfigItemId],
                                Enable = true,
                            },
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.AreaDescription)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.AreaDescription).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.AreaDescription,
                                },
                                Value  = Request[req],
                                Enable = true,
                            },
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.EvaluatorRol)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.EvaluatorRol).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.EvaluatorRol,
                                },
                                Value = SessionManager.SessionController.POLMarketPlace_MarketPlaceUserLogin.RelatedCompany.FirstOrDefault().RelatedUser.
                                        Where(y => y.RelatedCompanyRole.RoleCompanyId != 0).Select(y => y.RelatedCompanyRole.RoleCompanyId.ToString()).FirstOrDefault(),
                                Enable = true,
                            },
                            new GenericItemInfoModel()
                            {
                                ItemInfoId =
                                    (oSurveyItem != null &&
                                     oSurveyItem.ItemInfo != null && oSurveyItem.ItemInfo.Any(r => r.LargeValue == SessionModel.CurrentCompanyLoginUser.RelatedCompany.FirstOrDefault().RelatedUser.FirstOrDefault().UserCompanyId.ToString()) &&
                                     oSurveyItem.ItemInfo != null &&
                                     oSurveyItem.ItemInfo.Any(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.EvaluatorName)) ?
                                    oSurveyItem.ItemInfo.
                                    Where(sitinf => sitinf.ItemInfoType.ItemId == (int)enumSurveyItemInfoType.EvaluatorName).
                                    Select(sitinf => sitinf.ItemInfoId).
                                    DefaultIfEmpty(0).
                                    FirstOrDefault() : 0,
                                ItemInfoType = new CatalogModel()
                                {
                                    ItemId = (int)enumSurveyItemInfoType.EvaluatorName,
                                },
                                Value = SessionManager.SessionController.POLMarketPlace_MarketPlaceUserLogin.RelatedCompany.FirstOrDefault().RelatedUser.
                                        Where(y => y.User != null).Select(y => y.User).FirstOrDefault(),
                                Enable = true,
                            },
                        },
                    };
                    //add survey item to survey to upsert
                    oSurveyToUpsert.RelatedSurveyItem.Add(oSurveyItemToUpsert);
                }

                #endregion Answers

                return(true);
            });

            #endregion get request answers

            return(oSurveyToUpsert);
        }
Example #2
0
 public SurveyItemViewModel(ProveedoresOnLine.SurveyModule.Models.SurveyItemModel oRelatedSurveyItem)
 {
     RelatedSurveyItem = oRelatedSurveyItem;
 }