コード例 #1
0
        public ActionResult GetRoomIdFromRealEstateNos([FromBody] ParamsModel RealEstateNos)
        {
            if (RealEstateNos == null || RealEstateNos.RealEstateNos.Length == 0)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Msg = "Home/GetRoomIdFromRealEstateNos,当前参数为空", Data = null
                }));
            }
            List <RealEstate> mappings = new List <RealEstate>();

            foreach (var item in RealEstateNos.RealEstateNos)
            {
                var mapping = _realEstateService.GetHouseHold(item);
                mappings.Add(mapping);
            }
            if (mappings.Count == 0)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Msg = "Home/GetRoomIdFromRealEstateNos,未从映射表中找到户号"
                }));
            }

            else
            {
                return(Ok(mappings));
            }
        }
コード例 #2
0
ファイル: PerformanceTest.cs プロジェクト: Gilgamash/SqlSugar
 /// <summary>
 /// 构造函数
 /// </summary>
 public PerformanceTest()
 {
     _params = new ParamsModel()
     {
         RunCount = 1
     };
 }
コード例 #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 public PerformanceTest()
 {
     _params = new ParamsModel()
     {
         RunCount = 1
     };
 }
コード例 #4
0
        // Set necesary params from app
        public static ParamsModel ParseParams(string[] args)
        {
            ParamsModel        _params       = new ParamsModel(true);
            DefinedParamsModel definedParams = _params.basicParams;
            Dictionary <string, BaseParamModel> dicParams = ParseParamsFromCMD(args);

            definedParams.action       = dicParams.ContainsKey("action") ? dicParams["action"] : new BaseParamModel();
            definedParams.modernAuth   = dicParams.ContainsKey("modernAuth") ? dicParams["modernAuth"] : new BaseParamModel();
            definedParams.username     = dicParams.ContainsKey("username") ? dicParams["username"] : new BaseParamModel();
            definedParams.password     = dicParams.ContainsKey("password") ? dicParams["password"] : new BaseParamModel();
            definedParams.urlSite      = dicParams.ContainsKey("urlSite") ? dicParams["urlSite"] : new BaseParamModel();
            definedParams.templateName = dicParams.ContainsKey("templateName") ? dicParams["templateName"] : new BaseParamModel();
            definedParams.dirPath      = dicParams.ContainsKey("dirPath") ? dicParams["dirPath"] : new BaseParamModel();
            _params.basicParams        = definedParams;

            PropertyInfo[] properties = definedParams.GetType().GetProperties();
            foreach (KeyValuePair <string, BaseParamModel> dicParam in dicParams)
            {
                PropertyInfo finded = properties.FirstOrDefault(x => { return(x.Name == dicParam.Key); });
                if (finded == null)
                {
                    _params.others.Add(dicParam.Key, dicParam.Value);
                }
            }

            return(_params);
        }
コード例 #5
0
 public bool UpdateLandMarkNote([FromBody] ParamsModel model)
 {
     if (model != null && model.landmarkId > 0 && !string.IsNullOrEmpty(model.noteText))
     {
         return(_landmarkServices.UpdateLandMarkNote(model.landmarkId, model.noteText, user.ToString()));
     }
     return(false);
 }
コード例 #6
0
        public ActionResult Index()
        {
            var paramsModel = new ParamsModel()
            {
                listParams = parameterBusiness.Get.ToList().OrderBy(p => p.sParametro).ToList <Parameter>()
            };

            return(View(paramsModel));
        }
コード例 #7
0
        public static void Main(string[] args)
        {
            LogHelper.writeBasic("Init provisioning...");
            ParamsModel        allParams = ParamsHelper.ParseParams(args);
            DefinedParamsModel options   = allParams.basicParams;

            // Select type
            try
            {
                IService action;
                switch (options.action.value)
                {
                case "import":
                    action = new ImportTemplate();
                    break;

                case "export":
                    action = new ExportTemplate();
                    break;

                case "help":
                default:
                    action = new HelpTemplate();
                    break;
                }

                // Generate Secore Password
                SecureString passwordSecore = new SecureString();
                foreach (char c in options.password.value.ToCharArray())
                {
                    passwordSecore.AppendChar(c);
                }

                // Do the action
                if (action != null)
                {
                    LogHelper.writeBasic("Action found and start to run the program...");
                    action.RunAction(options, passwordSecore);
                    LogHelper.writeBasic("Action finished.");
                }
                else
                {
                    LogHelper.writeWarning(string.Concat("Action not defined in code, please review readme.md."));
                }

                // Code problem
            } catch (Exception ex)
            {
                LogHelper.writeError(string.Concat("An error not recognise happend, please review the code. ", ex.Message));
            }

            LogHelper.writeBasic("Finished process provisioning.");
            Console.ReadLine();
        }
コード例 #8
0
 /// <summary>
 /// 初始化参数
 /// </summary>
 /// <param name="fileDirectory"></param>
 public static void InitParamsModel(string fileDirectory = "/upload")
 {
     Params = new ParamsModel()
     {
         FileDirectory    = fileDirectory,
         FileType         = ".pdf,.xls,.xlsx,.doc,.docx,.txt,.png,.jpg,.gif,.mp3,.wav,.raw",
         MaxSizeM         = 10,
         PathSaveType     = PathSaveType.DateTimeNow,
         IsRenameSameFile = true
     };
 }
コード例 #9
0
 public UploadFile()
 {
     _params = new ParamsModel()
     {
         FileDirectory    = "/upload",
         FileType         = ".pdf,.xls,.xlsx,.doc,.docx,.txt,.png,.jpg,.gif",
         MaxSizeM         = 10,
         PathSaveType     = PathSaveType.dateTimeNow,
         IsRenameSameFile = true
     };
 }
コード例 #10
0
 public PageString()
 {
     _params = new ParamsModel()
     {
         IsEnglish     = false,
         IsShowText    = true,
         TextFormat    = "<span class=\"pagetext\"><strong>总共</strong>:{0} 条 <strong>当前</strong>:{1}/{2}</span> ",
         ClassName     = "pagination",
         PageIndexName = "pageIndex",
         IsAjax        = false
     };
 }
コード例 #11
0
        public ActionResult GetStatus([FromQuery] string token, [FromBody] ParamsModel RealEstateNos)
        {
            List <RoomStatus> roomStatuses   = new List <RoomStatus>();
            MappingService    mappingService = new MappingService();

            foreach (var item in RealEstateNos.RealEstateNos)
            {
                RoomStatus roomStatus  = new RoomStatus();
                var        queryString = item.Substring(0, 19);                    //截取地籍号
                roomStatus.MortgageList = ConvertMorToString(token, queryString);  //查询抵押List
                roomStatus.SealList     = ConvertToSealString(token, queryString); //查询查封List
                //roomStatus.DeleteSameModel();
                var Mapping = _realEstateService.GetHouseHold(item);
                var mapping = mappingService.GetHouseHold(item);
                roomStatus.BuildingNo = mapping.BuildingNo;
                roomStatuses.Add(roomStatus);
            }
            return(Ok(roomStatuses));
        }
コード例 #12
0
        private List <string> ConvertStringToList(string InputString)
        {
            char[]        charArr    = new char[] { '"', '{', '}' };
            List <string> stringList = new List <string>();
            //JsonConvert.DeserializeObject<>(InputString);
            string pattern3 = @"\{[^{}]+}";

            foreach (Match match in Regex.Matches(InputString, pattern3))
            {
                stringList.Add(match.Value);
            }


            string MortageArray = stringList[0].Split(':')[1].Trim(charArr);

            string[] MortageList = MortageArray.Split(',');

            ParamsModel paramsModel = new ParamsModel();

            paramsModel.RealEstateNos = MortageList;

            var           MortageResult = GetRoomIds(paramsModel);
            List <string> MortgageArray = new List <string>();

            if (MortageArray == null || MortageArray.Length == 0)
            {
                return(MortgageArray);
            }
            else
            {
                foreach (var item in MortageResult)
                {
                    MortgageArray.Add(item.RoomId);
                }
                return(MortgageArray);
            }
        }
コード例 #13
0
        public byte[] CreateExcel(List <ReportModel> calculationResult, ParamsModel prms)
        {
            Logger.Info("Create excel started", new { prms });

            if (calculationResult == null)
            {
                calculationResult = new List <ReportModel>();
            }

            byte[] result = null;

            try
            {
                var templateExcelFilePath = Path.Combine(Directory.GetCurrentDirectory(), "ReportTemplate.xlsx");

                Logger.Info("Excel file path", new { templateExcelFilePath, prms });

                var templateExcelFile =
                    File.Open(templateExcelFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);

                Logger.Info("Found excel template", new { prms });

                using (var package = new ExcelPackage(templateExcelFile))
                {
                    CreateWorksheetForCollection(package.Workbook, "Data", calculationResult);
                    result = package.GetAsByteArray();
                }

                Logger.Info("Create excel ended", new { prms });
            }
            catch (Exception e)
            {
                Logger.Error(e, "Could not create excel", new { prms });
            }

            return(result);
        }
コード例 #14
0
        private List <RealEstate> GetRoomIds([FromBody] ParamsModel RealEstateNos)
        {
            if (RealEstateNos == null || RealEstateNos.RealEstateNos.Length == 0)
            {
                return(new List <RealEstate>());
            }
            List <RealEstate> mappings = new List <RealEstate>();

            foreach (var item in RealEstateNos.RealEstateNos)
            {
                MappingService mappingService = new MappingService();
                var            mapping        = _realEstateService.GetHouseHold(item);
                mappings.Add(mapping);
            }
            if (mappings.Count == 0)
            {
                return(new List <RealEstate>());
            }

            else
            {
                return(mappings);
            }
        }
コード例 #15
0
        public async Task <bool> SendMail(IRestClient restClient, MailModel model, ParamsModel prms)
        {
            Logger.Info("Sending email..", prms);

            if (Config.Scope != "PROD")
            {
                model.body = $"[{Config.Scope}] {model.body}";
            }

            Uri uri = new Uri($"{Config.MailApi}/{Config.Name}");

            var result = await restClient.Post <MailResultModel, MailModel>(uri, model);

            if (!result.Succeeded)
            {
                Logger.Warning(result.ResultError.Error, new { model });

                return(false);
            }

            Logger.Info("Email result", new { result, prms });

            return(result.Data.ok);
        }
コード例 #16
0
        public List <ReportModel> CreateReport(List <PositionModel> positions, List <PositionAssignModel> positionAssigns, ParamsModel prms)
        {
            var vacantPositions       = GetVacantPositions(positions, positionAssigns, prms);
            var mappedVacantPositions = MapVacantPositions(vacantPositions, prms);

            return(mappedVacantPositions);
        }
コード例 #17
0
        public static async Task MainAsync(string[] args)
        {
            var sw = new Stopwatch();

            sw.Start();

            string guid = new Guid().ToString();

            ParamsModel prms;

            if (Config.Nightly)
            {
                prms = new ParamsModel
                {
                    Guid         = guid,
                    Destinations = null,
                    Emails       = !string.IsNullOrEmpty(Config.Emails)
                        ? Config.Emails.Split(",").ToList()
                        : new List <string>()
                };
            }
            else
            {
                prms = new ParamsModel
                {
                    Guid                               = guid,
                    Destinations                       = Config.Destinations != null?Config.Destinations.Split(",").ToList() : null,
                                                  User = new UserModel
                    {
                        FirstName = Config.UserFirstName,
                        LastName  = Config.UserLastName,
                        Email     = Config.UserEmail,
                        Roles     = !string.IsNullOrEmpty(Config.UserRoles)
                            ? Config.UserRoles.Split(",").ToArray()
                            : new string[] { }
                    },
                    Emails = new List <string> {
                        Config.UserEmail
                    }
                };
            }

            Logger.Info("params", new { prms });

            var services = new ServiceCollection();

            services.AddSingleton <IRestClient, RestClient>();
            services.AddTransient <ITppService, TppService>();
            services.AddTransient <IIMailService, MailService>();
            services.AddTransient <IReportService, ReportService>();
            services.AddTransient <IExcelService, ExcelService>();
            var serviceProvider = services.BuildServiceProvider();

            var tppService    = serviceProvider.GetService <ITppService>();
            var reportService = serviceProvider.GetService <IReportService>();
            var mailService   = serviceProvider.GetService <IIMailService>();
            var excelService  = serviceProvider.GetService <IExcelService>();
            var restClient    = serviceProvider.GetService <IRestClient>();

            var positions = await tppService.GetPositions(restClient, prms);

            if (positions == null || positions.Count == 0)
            {
                Logger.Warning("Positions null or empty, aborting batch", new
                {
                    prms
                });

                return;
            }

            var positionAssigns = await tppService.GetPositionAssigns(restClient, positions, prms);

            if (positionAssigns == null || positionAssigns.Count == 0)
            {
                Logger.Warning("Position assigns null or empty, aborting batch", new
                {
                    prms
                });

                return;
            }

            var report = reportService.CreateReport(positions, positionAssigns, prms);
            var excel  = excelService.CreateExcel(report, prms);

            if (excel != null)
            {
                List <AttachmentModel> attachments = new List <AttachmentModel>
                {
                    new AttachmentModel
                    {
                        data = "data:application/pdf;base64," + Convert.ToBase64String(excel),
                        name = "vacant report.xlsx"
                    }
                };

                var mail = new MailModel
                {
                    attachments = attachments,
                    body        = "Please find the attached file",
                    emailTo     = prms.Emails,
                    isBodyHtml  = false,
                    subject     = "tuidx placement vacant report",
                    userAddress = Config.UserAddress
                };

                var mailResult = await mailService.SendMail(restClient, mail, prms);

                mail.attachments = null;

                Logger.Info("Report ended", new { totalExecutionTime = sw.ElapsedMilliseconds, mailResult, mail, prms, positions = positions.Count, positionAssigns = positionAssigns.Count });
            }
            else
            {
                Logger.Warning("Could not send report - excel is null",
                               new
                {
                    totalExecutionTime = sw.ElapsedMilliseconds,
                    prms,
                    positions       = positions.Count,
                    positionAssigns = positionAssigns.Count
                });
            }
        }
コード例 #18
0
        public async Task <List <PositionAssignModel> > GetPositionAssigns(IRestClient restClient, List <PositionModel> positions, ParamsModel prms)
        {
            Uri uri = new Uri($"{Config.TppApi}/vacant/positionassigns");

            var result = await restClient.Get <List <PositionAssignModel> >(uri);

            if (!result.Succeeded)
            {
                Logger.Warning(result.ResultError.Error, new { result, prms });

                return(default(List <PositionAssignModel>));
            }

            var mplIds = positions.Select(p => p.MPLID).ToList();

            return(result.Data.Where(m => mplIds.Contains(m.MPLID)).ToList());
        }
        async public Task <ActionResult> RegisterCreateInterface([FromQuery] string token, [FromQuery] string guid, [FromBody] ParamsModel bdcdyhList)
        {
            var saveOperate = _savOperateService.GetOperate(guid);

            if (saveOperate == null)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Data = null, Msg = "未查找到本次操作"
                }));
            }
            if (token == null)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Data = null, Msg = "token为空"
                }));
            }
            if (guid == null)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Data = null, Msg = "GUID为空"
                }));
            }
            if (bdcdyhList == null)
            {
                return(Ok(new ReturnModel()
                {
                    Code = 404, Data = null, Msg = "请求体为空"
                }));
            }
            List <bdcdyhs> bdcdyhs = new List <bdcdyhs>()
            {
            };

            foreach (var item in bdcdyhList.RealEstateNos)
            {
                bdcdyhs bdcdyhs1 = new bdcdyhs()
                {
                };
                bdcdyhs1.bdcdyh = item;
                bdcdyhs.Add(bdcdyhs1);
            }
            PostCreateProcessObject postIsAllowCheck = new PostCreateProcessObject()
            {
                czrid       = saveOperate.ParamJson.czrid,
                gzldyid     = saveOperate.ParamJson.gzldyid,
                jbxxid      = saveOperate.ParamJson.jbxxid,
                slbh        = saveOperate.ParamJson.slbh,
                bdcdyxxList = bdcdyhs
            };
            string Url    = $"/realestate-exchange/rest/v1.0/interface/bdcdycj?access_token={token}";
            Proxys proxy  = new Proxys(Url);
            var    Result = await proxy.CreateWorkFlow(postIsAllowCheck);

            return(Ok(Result));
        }
        async public Task <ActionResult> IsAllowRegister([FromQuery] string token, [FromQuery] string guid, [FromBody] ParamsModel bdcdyhList)
        {
            if (String.IsNullOrEmpty(token) || string.IsNullOrEmpty(guid) || bdcdyhList == null)
            {
                return(Ok(new ReturnModel()
                {
                    Msg = "未找到参数"
                }));
            }
            var saveOperate = _savOperateService.GetOperate(guid);

            if (saveOperate == null)
            {
                return(Ok(new ReturnModel()
                {
                    Msg = "未查找到此次操作"
                }));
            }
            List <bdcdyhs> bdcdyhs = new List <bdcdyhs>()
            {
            };

            foreach (var item in bdcdyhList.RealEstateNos)
            {
                bdcdyhs bdcdyhs1 = new bdcdyhs()
                {
                };
                bdcdyhs1.bdcdyh = item;
                bdcdyhs.Add(bdcdyhs1);
            }
            PostIsAllowCheck postIsAllowCheck = new PostIsAllowCheck()
            {
                bdcdyhList = bdcdyhs, gzldyid = saveOperate.ParamJson.gzldyid
            };
            string Url    = $"/realestate-exchange/rest/v1.0/interface/bdcdycjgzyz?access_token={token}";
            Proxys proxy  = new Proxys(Url);
            var    Result = await proxy.RuleCheck(postIsAllowCheck);

            return(Ok(Result));
        }
コード例 #21
0
        public async Task <List <PositionModel> > GetPositions(IRestClient restClient, ParamsModel prms)
        {
            if (prms.Destinations == null || prms.Destinations.Contains("All Destinations") || prms.Destinations.Contains("") || prms.Destinations[0] == null || prms.Destinations.Count == 0)
            {
                prms.Destinations = null;
            }

            Uri uri = new Uri($"{Config.TppApi}/vacant/positions");

            var result = await restClient.Get <List <PositionModel> >(uri);

            if (!result.Succeeded)
            {
                Logger.Warning(result.ResultError.Error, new { result, prms });

                return(default(List <PositionModel>));
            }

            if (prms.Destinations == null)
            {
                return(result.Data
                       .Where(p => p.PositionStartDate != null && p.PositionEndDate != null &&
                              p.PositionEndDate >= DateTime.Now.Date).OrderBy(p => p.MPLID).ToList());
            }

            return(result.Data
                   .Where(p => prms.Destinations.Contains(p.Destination) && p.PositionStartDate != null && p.PositionEndDate != null &&
                          p.PositionEndDate >= DateTime.Now.Date).OrderBy(p => p.MPLID).ToList());
        }
コード例 #22
0
        public List <ReportModel> MapVacantPositions(List <VacantPositionModel> vacantPositions, ParamsModel prms)
        {
            Logger.Info("Map vacant position started", new { prms });

            List <ReportModel> mapRes = new List <ReportModel>();

            foreach (var vacantPosition in vacantPositions)
            {
                foreach (var period in vacantPosition.VacantPositionPeriods)
                {
                    mapRes.Add(new ReportModel
                    {
                        MPLID           = vacantPosition.Position.MPLID,
                        MPL_DL_Required = vacantPosition.Position.MPL_DL_Required,
                        Season          = vacantPosition.Position.Season,
                        Region          = vacantPosition.Position.Region,
                        Country         = vacantPosition.Position.Country,
                        HeadOf          = vacantPosition.Position.HeadOf,
                        SDD_DM          = vacantPosition.Position.SDD_DM,
                        HighSeason      = vacantPosition.Position.HighSeason,
                        ConceptHotel    = vacantPosition.Position.ConceptHotel,
                        Destination     = vacantPosition.Position.Destination,
                        MPLEndDate      = vacantPosition.Position.PositionEndDate,
                        JobTitle        = vacantPosition.Position.JobTitle,
                        JobFamily       = vacantPosition.Position.JobFamily,
                        MPLPositionType = vacantPosition.Position.MPLPositionType,
                        MPLSourceMarket = vacantPosition.Position.MPLSourceMarket,
                        Profile         = vacantPosition.Position.Profile,
                        MPLStartDate    = vacantPosition.Position.PositionStartDate,
                        NotAssignedFrom = period.From,
                        NotAssignedTo   = period.To,
                        Comment         = string.Empty
                    });
                }
            }

            Logger.Info("Map vacant position ended", new { prms });

            return(mapRes);
        }
コード例 #23
0
        public List <VacantPositionModel> GetVacantPositions(List <PositionModel> positions, List <PositionAssignModel> positionAssigns, ParamsModel prms)
        {
            DateTime start = DateTime.Now;

            Logger.Info("Started vacant position report", new { date = DateTime.Now.ToShortTimeString(), prms });

            var vacantPositions = new List <VacantPositionModel>();

            int failed = 0;

            for (int i = 0; i < positions.Count; i++)
            {
                if (!positions[i].PositionStartDate.HasValue || !positions[i].PositionEndDate.HasValue)
                {
                    continue;
                }

                VacantPositionModel vacantPosition = new VacantPositionModel()
                {
                    Position = positions[i]
                };

                VacantPositionPeriodsModel vacantPositionPeriod = new VacantPositionPeriodsModel();

                for (DateTime date = positions[i].PositionStartDate.Value; date.Date <= positions[i].PositionEndDate.Value; date = date.AddDays(1))
                {
                    DateTime nextDay = date.AddDays(1);

                    try
                    {
                        var positionAssignCurrent = positionAssigns.OrderByDescending(pa => pa.StartDate)
                                                    .SingleOrDefault(pa => pa.MPLID == positions[i].MPLID &&
                                                                     pa.StartDate <= date && date <= pa.EndDate);

                        var positionAssignNext = positionAssigns.SingleOrDefault(pa => pa.MPLID == positions[i].MPLID &&
                                                                                 pa.StartDate <= nextDay &&
                                                                                 nextDay <= pa.EndDate);

                        if (positionAssignCurrent == null)
                        {
                            if (vacantPositionPeriod.From == null)
                            {
                                vacantPositionPeriod.From = date;
                            }

                            if (vacantPositionPeriod.From != null &&
                                (date == positions[i].PositionEndDate.Value || positionAssignNext != null))
                            {
                                vacantPositionPeriod.To = date;
                                vacantPosition.VacantPositionPeriods.Add(vacantPositionPeriod);
                                vacantPositionPeriod = new VacantPositionPeriodsModel();
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        failed++;

                        vacantPosition.VacantPositionPeriods = new List <VacantPositionPeriodsModel>();

                        //Logger.Info("Could not add position to vacant report, overlapping position assigns?", new { e, position = positions[i], index = $"{i} / {positions.Count}", prms });

                        break;
                    }
                }

                if (vacantPosition.VacantPositionPeriods.Count > 0)
                {
                    vacantPositions.Add(vacantPosition);
                }
            }

            if (failed > 0)
            {
                Logger.Warning("Missing rows in vacant report", new { count = failed, prms });
            }

            TimeSpan span = DateTime.Now.Subtract(start);

            Logger.Info("Created vacant positions", new
            {
                date   = DateTime.Now.ToShortTimeString(),
                vacant = vacantPositions.Count,
                failed,
                prms,
                minutes = span.TotalMinutes
            });

            return(vacantPositions);
        }