Esempio n. 1
0
        public ThirdKnowledgeViewModel(TDQueryModel RelatedQuery)
        {
            this.QueryCreateDate = RelatedQuery.CreateDate.ToString();

            this.QueryStatus = RelatedQuery.IsSuccess.ToString();

            this.QueryType = RelatedQuery.SearchType.ItemName;

            this.QueryUser = RelatedQuery.User;
        }
Esempio n. 2
0
        public ProviderViewModel TKSingleReSearch(string TKSingleReSearch, string IdentificationNumber, string Name)
        {
            ProviderViewModel oModel = new ProviderViewModel();

            oModel.RelatedThirdKnowledge = new ThirdKnowledgeViewModel();
            List <PlanModel> oCurrentPeriodList = new List <PlanModel>();

            try
            {
                //Get The Active Plan By Customer
                oCurrentPeriodList = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.GetCurrenPeriod(SessionModel.CurrentCompany.CompanyPublicId, true);

                if (oCurrentPeriodList != null && oCurrentPeriodList.Count > 0)
                {
                    oModel.RelatedThirdKnowledge.HasPlan = true;

                    //Get The Most Recently Period When Plan is More Than One
                    oModel.RelatedThirdKnowledge.CurrentPlanModel = oCurrentPeriodList.OrderByDescending(x => x.CreateDate).First();

                    #region Upsert Process

                    if (System.Web.HttpContext.Current.Request["UpsertRequest"] == "true")
                    {
                        //Set Current Sale
                        if (oModel.RelatedThirdKnowledge != null)
                        {
                            //Save Query
                            TDQueryModel oQueryToCreate = new TDQueryModel()
                            {
                                IsSuccess      = true,
                                PeriodPublicId = oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId,
                                SearchType     = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryType.Simple,
                                },
                                User        = SessionModel.CurrentLoginUser.Email,
                                QueryStatus = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryStatus.Finalized
                                },
                            };
                            oModel.RelatedThidKnowledgeSearch = new ThirdKnowledgeViewModel();
                            oModel.RelatedThidKnowledgeSearch.CollumnsResult = new TDQueryModel();

                            //Get Reqsult
                            oModel.RelatedThidKnowledgeSearch.CollumnsResult = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.SimpleRequest(oCurrentPeriodList.FirstOrDefault().
                                                                                                                                                              RelatedPeriodModel.FirstOrDefault().PeriodPublicId, IdentificationNumber, Name, oQueryToCreate);

                            //Init Finally Tuple, Group by ItemGroup Name
                            List <Tuple <string, List <ThirdKnowledgeViewModel> > > Group = new List <Tuple <string, List <ThirdKnowledgeViewModel> > >();
                            List <string> Item1 = new List <string>();
                            if (oModel.RelatedThidKnowledgeSearch.CollumnsResult != null && oModel.RelatedThidKnowledgeSearch.CollumnsResult.IsSuccess)
                            {
                                oModel.RelatedThidKnowledgeSearch.CollumnsResult.RelatedQueryBasicInfoModel.All(x =>
                                {
                                    Item1.Add(x.DetailInfo.Where(y => y.ItemInfoType.ItemId == (int)enumThirdKnowledgeColls.GroupName).Select(y => y.Value).FirstOrDefault());
                                    return(true);
                                });
                                Item1 = Item1.GroupBy(x => x).Select(grp => grp.Last()).ToList();

                                List <ThirdKnowledgeViewModel> oItem2 = new List <ThirdKnowledgeViewModel>();
                                Tuple <string, List <ThirdKnowledgeViewModel> > oTupleItem = new Tuple <string, List <ThirdKnowledgeViewModel> >("", new List <ThirdKnowledgeViewModel>());

                                Item1.All(x =>
                                {
                                    if (oModel.RelatedThidKnowledgeSearch.CollumnsResult.RelatedQueryBasicInfoModel.Where(td => td.DetailInfo.Any(inf => inf.Value == x)) != null)
                                    {
                                        oItem2 = new List <ThirdKnowledgeViewModel>();
                                        oItem2.Add(new ThirdKnowledgeViewModel(oModel.RelatedThidKnowledgeSearch.CollumnsResult.
                                                                               RelatedQueryBasicInfoModel.Where(td => td.DetailInfo.Any(inf => inf.Value == x)).
                                                                               Select(td => td.DetailInfo).FirstOrDefault()));           // new ThirdKnowledgeViewModel(oModel.RelatedThidKnowledgeSearch.CollumnsResult.RelatedQueryBasicInfoModel.Where(td => td.DetailInfo.Any(inf => inf.Value == x)).Select(td => td.DetailInfo).ToList();
                                        oTupleItem = new Tuple <string, List <ThirdKnowledgeViewModel> >(x, oItem2);
                                        Group.Add(oTupleItem);
                                    }
                                    return(true);
                                });
                                if (Group != null)
                                {
                                    oModel.RelatedSingleSearch = Group;
                                }


                                if (oModel.RelatedThidKnowledgeSearch.CollumnsResult.QueryPublicId != null)
                                {
                                    //Set New Score
                                    oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().TotalQueries = (oCurrentPeriodList.FirstOrDefault().RelatedPeriodModel.FirstOrDefault().TotalQueries + 1);

                                    //Period Upsert
                                    oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.PeriodoUpsert(
                                        oCurrentPeriodList.FirstOrDefault().RelatedPeriodModel.FirstOrDefault());
                                }
                            }
                        }
                        else
                        {
                            TDQueryModel oQueryToCreate = new TDQueryModel()
                            {
                                IsSuccess      = false,
                                PeriodPublicId = oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId,
                                SearchType     = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryType.Simple,
                                },
                                User = SessionModel.CurrentLoginUser.Email,
                            };
                        }
                    }

                    #endregion Upsert Process
                }
                else
                {
                    oModel.RelatedThirdKnowledge.HasPlan = false;
                }
                return(oModel);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
Esempio n. 3
0
        public FileModel TKLoadFile(string TKLoadFile, string CompanyPublicId, string PeriodPublicId)
        {
            FileModel oReturn = new FileModel();

            if (System.Web.HttpContext.Current.Request.Files.AllKeys.Length > 0)
            {
                //get folder
                string strFolder = System.Web.HttpContext.Current.Server.MapPath
                                       (Models.General.InternalSettings.Instance
                                       [Models.General.Constants.C_Settings_File_TempDirectory].Value);

                if (!System.IO.Directory.Exists(strFolder))
                {
                    System.IO.Directory.CreateDirectory(strFolder);
                }

                //get File
                var UploadFile = System.Web.HttpContext.Current.Request.Files["ThirdKnowledge_FileUpload"];

                if (UploadFile != null && !string.IsNullOrEmpty(UploadFile.FileName))
                {
                    string oFileName = "ThirdKnowledgeFile_" +
                                       CompanyPublicId + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "." +
                                       UploadFile.FileName.Split('.').DefaultIfEmpty("xlsx").LastOrDefault();
                    oFileName = oFileName.Split('.').LastOrDefault() == "xls" ? oFileName.Replace("xls", "xlsx") : oFileName;
                    string strFilePath = strFolder.TrimEnd('\\') + "\\" + oFileName;

                    UploadFile.SaveAs(strFilePath);

                    Tuple <bool, string> oVerifyResult = this.FileVerify(strFilePath, oFileName, PeriodPublicId);
                    bool isValidFile = oVerifyResult.Item1;

                    string strRemoteFile = string.Empty;
                    if (isValidFile)
                    {
                        //load file to s3
                        strRemoteFile = ProveedoresOnLine.FileManager.FileController.LoadFile
                                            (strFilePath,
                                            Models.General.InternalSettings.Instance[Models.General.Constants.C_Settings_File_ThirdKnowledgeRemoteDirectory].Value);

                        TDQueryModel oQueryToCreate = new TDQueryModel()
                        {
                            IsSuccess      = isValidFile,
                            PeriodPublicId = PeriodPublicId,
                            QueryStatus    = new TDCatalogModel()
                            {
                                ItemId = (int)enumThirdKnowledgeQueryStatus.InProcess
                            },
                            SearchType = new TDCatalogModel()
                            {
                                ItemId = (int)enumThirdKnowledgeQueryType.Masive,
                            },
                            User     = SessionModel.CurrentLoginUser.Email,
                            FileName = oFileName,
                        };

                        oQueryToCreate = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.QueryUpsert(oQueryToCreate);

                        //Send Message
                        MessageModule.Client.Models.NotificationModel oDataMessage = new MessageModule.Client.Models.NotificationModel();
                        oDataMessage.CompanyPublicId      = CompanyPublicId;
                        oDataMessage.User                 = SessionModel.CurrentLoginUser.Email;
                        oDataMessage.CompanyLogo          = SessionModel.CurrentCompany_CompanyLogo;
                        oDataMessage.CompanyName          = SessionModel.CurrentCompany.CompanyName;
                        oDataMessage.IdentificationType   = SessionModel.CurrentCompany.IdentificationType.ItemName;
                        oDataMessage.IdentificationNumber = SessionModel.CurrentCompany.IdentificationNumber;

                        #region Notification

                        oDataMessage.Label = Models.General.InternalSettings.Instance
                                             [Models.General.Constants.N_ThirdKnowledgeUploadMassiveMessage].Value;
                        oDataMessage.Url = Models.General.InternalSettings.Instance
                                           [Models.General.Constants.N_UrlThirdKnowledgeQuery].Value.Replace("{{QueryPublicId}}", oQueryToCreate.QueryPublicId);
                        oDataMessage.NotificationType = (int)MarketPlace.Models.General.enumNotificationType.ThirdKnowledgeNotification;
                        oDataMessage.Enable           = true;

                        #endregion

                        ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.CreateUploadNotification(oDataMessage);
                    }

                    //remove temporal file
                    if (System.IO.File.Exists(strFilePath))
                    {
                        System.IO.File.Delete(strFilePath);
                    }

                    oReturn = new FileModel()
                    {
                        FileName    = UploadFile.FileName,
                        ServerUrl   = strRemoteFile,
                        LoadMessage = isValidFile ? "El Archivo " + UploadFile.FileName + " es correcto, en unos momentos recibirá un correo con el respectivo resultado de la validación." :
                                      "El Archivo " + UploadFile.FileName + " no es correcto, por favor verifique el nombre de las columnas y el formato.",
                        AdditionalInfo = oVerifyResult.Item2,
                    };
                }
            }
            return(oReturn);
        }
Esempio n. 4
0
        public FileModel TKReSearchMasive(string TKReSearchMasive, string CompanyPublicId, string PeriodPublicId, string FileName)
        {
            FileModel oReturn = new FileModel();

            if (!string.IsNullOrEmpty(FileName))
            {
                //get folder
                string strFolder = System.Web.HttpContext.Current.Server.MapPath
                                       (Models.General.InternalSettings.Instance
                                       [Models.General.Constants.C_Settings_File_TempDirectory].Value);

                if (!System.IO.Directory.Exists(strFolder))
                {
                    System.IO.Directory.CreateDirectory(strFolder);
                }

                //Download Excel to process
                using (WebClient webClient = new WebClient())
                {
                    //Get file from S3 using File Name
                    webClient.DownloadFile(Models.General.InternalSettings.Instance[
                                               Models.General.Constants.TK_File_S3FilePath].Value + FileName, strFolder + "ReSearch_" + FileName);

                    ////Get file from S3 using File Name
                    //webClient.DownloadFile(ThirdKnowledge.Models.InternalSettings.Instance[
                    //                    ProveedoresOnLine.ThirdKnowledge.Models.Constants.C_Setings_File_S3FilePath].Value + oQuery.FileName, strFolder + oQuery.FileName);
                }

                string oFileName = "ReSearch_" + FileName;

                string strFilePath = strFolder.TrimEnd('\\') + "\\" + oFileName;

                Tuple <bool, string> oVerifyResult = this.FileVerify(strFilePath, oFileName, PeriodPublicId);
                bool isValidFile = oVerifyResult.Item1;

                string strRemoteFile = string.Empty;
                if (isValidFile)
                {
                    //load file to s3
                    strRemoteFile = ProveedoresOnLine.FileManager.FileController.LoadFile
                                        (strFilePath,
                                        Models.General.InternalSettings.Instance[Models.General.Constants.C_Settings_File_ThirdKnowledgeRemoteDirectory].Value);

                    TDQueryModel oQueryToCreate = new TDQueryModel()
                    {
                        IsSuccess      = isValidFile,
                        PeriodPublicId = PeriodPublicId,
                        QueryStatus    = new TDCatalogModel()
                        {
                            ItemId = (int)enumThirdKnowledgeQueryStatus.InProcess
                        },
                        SearchType = new TDCatalogModel()
                        {
                            ItemId = (int)enumThirdKnowledgeQueryType.Masive,
                        },
                        User     = SessionModel.CurrentLoginUser.Email,
                        FileName = oFileName,
                    };

                    oQueryToCreate = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.QueryUpsert(oQueryToCreate);

                    //Send Message
                    MessageModule.Client.Models.NotificationModel oDataMessage = new MessageModule.Client.Models.NotificationModel();
                    oDataMessage.CompanyPublicId      = CompanyPublicId;
                    oDataMessage.User                 = SessionModel.CurrentLoginUser.Email;
                    oDataMessage.CompanyLogo          = SessionModel.CurrentCompany_CompanyLogo;
                    oDataMessage.CompanyName          = SessionModel.CurrentCompany.CompanyName;
                    oDataMessage.IdentificationType   = SessionModel.CurrentCompany.IdentificationType.ItemName;
                    oDataMessage.IdentificationNumber = SessionModel.CurrentCompany.IdentificationNumber;

                    #region Notification

                    oDataMessage.Label = Models.General.InternalSettings.Instance
                                         [Models.General.Constants.N_ThirdKnowledgeUploadMassiveMessage].Value;
                    oDataMessage.Url = Models.General.InternalSettings.Instance
                                       [Models.General.Constants.N_UrlThirdKnowledgeQuery].Value.Replace("{{QueryPublicId}}", oQueryToCreate.QueryPublicId);
                    oDataMessage.NotificationType = (int)MarketPlace.Models.General.enumNotificationType.ThirdKnowledgeNotification;
                    oDataMessage.Enable           = true;

                    #endregion

                    ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.CreateUploadNotification(oDataMessage);

                    //remove temporal file
                    if (System.IO.File.Exists(strFilePath))
                    {
                        System.IO.File.Delete(strFilePath);
                    }

                    oReturn = new FileModel()
                    {
                        FileName    = "ReSearch" + FileName,
                        ServerUrl   = strRemoteFile,
                        LoadMessage = isValidFile ? "El Archivo " + "ReSearch" + FileName + " es correcto, en unos momentos recibirá un correo con el respectivo resultado de la validación." :
                                      "El Archivo " + "ReSearch" + FileName + " no es correcto, por favor verifique el nombre de las columnas y el formato.",
                        AdditionalInfo = oVerifyResult.Item2,
                    };
                }
            }
            return(oReturn);
        }
Esempio n. 5
0
        public ProviderViewModel TKSingleDetail(string QueryPublicId)
        {
            ProviderViewModel oModel = new ProviderViewModel();

            oModel.RelatedThirdKnowledge = new ThirdKnowledgeViewModel();
            List <PlanModel> oCurrentPeriodList = new List <PlanModel>();

            try
            {
                //Get The Active Plan By Customer
                oCurrentPeriodList = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.GetCurrenPeriod(SessionModel.CurrentCompany.CompanyPublicId, true);

                if (oCurrentPeriodList != null && oCurrentPeriodList.Count > 0)
                {
                    oModel.RelatedThirdKnowledge.HasPlan = true;

                    //Get The Most Recently Period When Plan is More Than One
                    oModel.RelatedThirdKnowledge.CurrentPlanModel = oCurrentPeriodList.OrderByDescending(x => x.CreateDate).First();

                    #region Upsert Process

                    if (System.Web.HttpContext.Current.Request["UpsertRequest"] == "true")
                    {
                        //Set Current Sale
                        if (oModel.RelatedThirdKnowledge != null)
                        {
                            //Save Query
                            TDQueryModel oQueryToCreate = new TDQueryModel()
                            {
                                IsSuccess      = true,
                                PeriodPublicId = oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId,
                                SearchType     = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryType.Simple,
                                },
                                User        = SessionModel.CurrentLoginUser.Email,
                                QueryStatus = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryStatus.Finalized
                                },
                            };
                            oModel.RelatedThidKnowledgeSearch = new ThirdKnowledgeViewModel();
                            oModel.RelatedThidKnowledgeSearch.CollumnsResult = new TDQueryModel();
                            oModel.RelatedThidKnowledgeSearch.CollumnsResult = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.SimpleRequest(oCurrentPeriodList.FirstOrDefault().
                                                                                                                                                              RelatedPeriodModel.FirstOrDefault().PeriodPublicId,
                                                                                                                                                              System.Web.HttpContext.Current.Request["IdentificationNumber"], System.Web.HttpContext.Current.Request["Name"], oQueryToCreate);
                            if (oModel.RelatedThidKnowledgeSearch.CollumnsResult.IsSuccess == true)
                            {
                                //Set New Score
                                oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().TotalQueries = (oCurrentPeriodList.FirstOrDefault().RelatedPeriodModel.FirstOrDefault().TotalQueries + 1);

                                //Period Upsert
                                oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId = ProveedoresOnLine.ThirdKnowledge.Controller.ThirdKnowledgeModule.PeriodoUpsert(
                                    oCurrentPeriodList.FirstOrDefault().RelatedPeriodModel.FirstOrDefault());
                            }
                        }
                        else
                        {
                            TDQueryModel oQueryToCreate = new TDQueryModel()
                            {
                                IsSuccess      = false,
                                PeriodPublicId = oModel.RelatedThirdKnowledge.CurrentPlanModel.RelatedPeriodModel.FirstOrDefault().PeriodPublicId,
                                SearchType     = new TDCatalogModel()
                                {
                                    ItemId = (int)enumThirdKnowledgeQueryType.Simple,
                                },
                                User = SessionModel.CurrentLoginUser.Email,
                            };
                        }
                    }

                    #endregion Upsert Process
                }
                else
                {
                    oModel.RelatedThirdKnowledge.HasPlan = false;
                }
                return(oModel);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }