public ThirdKnowledgeViewModel(TDQueryModel RelatedQuery) { this.QueryCreateDate = RelatedQuery.CreateDate.ToString(); this.QueryStatus = RelatedQuery.IsSuccess.ToString(); this.QueryType = RelatedQuery.SearchType.ItemName; this.QueryUser = RelatedQuery.User; }
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; } }
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); }
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); }
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; } }