Exemplo n.º 1
0
        public void Save()
        {
            var entities = this.GetMarketContext();
            var contract = entities.S_SP_SupplierContract.SingleOrDefault(d => d.ID == this.Contract);

            if (contract == null)
            {
                throw new Formula.Exceptions.BusinessException("未能找到ID为【" + this.ContractName + "】的分包合同信息,无法进行开票操作");
            }
            if (String.IsNullOrEmpty(this.Supplier))
            {
                this.Supplier     = contract.Supplier;
                this.SupplierName = contract.SupplierName;
            }
            if (this.PaymentDate.HasValue)
            {
                var date = Convert.ToDateTime(this.PaymentDate);
                this.BelongYear    = date.Year;
                this.BelongMonth   = date.Month;
                this.BelongQuarter = MarketHelper.GetQuarter(date);
            }
            contract.SummaryData();
            this.SychorToCostInfo();
            // this.SychorToSEPCostInfo();
        }
Exemplo n.º 2
0
        public override async Task <TaskRes> Execute(HtmlDocument htmlDoc, ChromeDriver wb, Files.Models.AccModels.Account acc)
        {
            var building = vill.Build.Buildings.FirstOrDefault(x => x.Type == Classificator.BuildingEnum.Marketplace);

            if (building == null)
            {
                //update dorg, no buildingId found?
                TaskExecutor.AddTask(acc, new UpdateDorf2()
                {
                    ExecuteAt = DateTime.Now, vill = vill
                });
                Console.WriteLine($"There is no {building} in this village!");
                return(TaskRes.Executed);
            }
            await acc.Wb.Navigate($"{acc.AccInfo.ServerUrl}/build.php?id={building.Id}&t=5");

            this.PostTaskCheck.Add(RepeatTask);
            var mainVill = AccountHelper.GetMainVillage(acc);

            var res = MarketHelper.GetResToMainVillage(vill);

            var ret = await MarketHelper.MarketSendResource(acc, res, mainVill, this);

            return(TaskRes.Executed);
        }
        public ItemSearchFiltersDTO GetDto()
        {
            return(new ItemSearchFiltersDTO()
            {
                Keywords = Keywords,
                StyleId = StyleId,
                StyleName = StyleName,
                DropShipperId = DropShipperId,
                Market = (int)Market,
                MarketplaceId = MarketplaceId,
                MarketCode = MarketHelper.GetShortName((int)Market, MarketplaceId),

                MinPrice = MinPrice,
                MaxPrice = MaxPrice,
                PublishedStatus = PublishedStatus,

                Brand = Brand,
                Genders = Genders,

                Availability = (int)Availability,

                StartIndex = StartIndex,
                LimitCount = LimitCount,
            });
        }
 public MarketCreateBuyOrder(MarketHandler marketHandler, MarketHelper marketHelper, IMarketInfoService marketInfoService, IMarketOrderRepository marketOrderRepository)
 {
     _marketHandler         = marketHandler;
     _marketHelper          = marketHelper;
     _marketInfoService     = marketInfoService;
     _marketOrderRepository = marketOrderRepository;
 }
Exemplo n.º 5
0
        }                                 //once / twice / 3 times

        public override async Task <TaskRes> Execute(Account acc)
        {
            if (!await VillageHelper.EnterBuilding(acc, Vill, Classificator.BuildingEnum.Marketplace, "&t=5"))
            {
                return(TaskRes.Executed);
            }

            if (this.Resources == null)
            {
                this.Resources = Vill.Res.Stored.Resources;
            }
            // Check if we have enough resources in main village
            var resToSend = MarketHelper.SendResCapToStorage(acc, this.Resources);

            var targetVillage = acc.Villages.FirstOrDefault(x => x.Coordinates == this.Coordinates);

            var duration = await MarketHelper.MarketSendResource(acc, resToSend, targetVillage, this);

            var targetVill = acc.Villages.FirstOrDefault(x => x.Coordinates == Coordinates);

            targetVill.Market.Settings.Configuration.TransitArrival = DateTime.Now.Add(duration);

            if (this.Configuration != null && duration != null)
            {
                this.Configuration.TransitArrival = DateTime.Now.Add(duration);
            }
            // When you send resources there actually isn't a page load
            return(TaskRes.Executed);
        }
        protected override void AfterSave(Dictionary <string, string> dic, Base.Logic.Domain.S_UI_Form formInfo, bool isNew)
        {
            var entity = this.GetEntityByID <S_C_ManageContract_Supplementary>(dic.GetValue("ID"));

            SyncContract(entity);

            if (entity.SignDate.HasValue)
            {
                var date = Convert.ToDateTime(entity.SignDate);
                entity.BelongQuarter = MarketHelper.GetQuarter(date);
                entity.BelongYear    = date.Year;
                entity.BelongMonth   = date.Month;
            }

            Action action = () => {
                this.BusinessEntities.SaveChanges();
                #region 修改补充协议需要同步业财的合同信息
                if (entity.S_C_ManageContract != null)
                {
                    var contractInfoDic = FormulaHelper.ModelToDic <S_C_ManageContract>(entity.S_C_ManageContract);
                    Expenses.Logic.CBSInfoFO.SynCBSInfo(contractInfoDic, Expenses.Logic.SetCBSOpportunity.Contract);
                }
                #endregion
            };

            this.ExecuteAction(action);
        }
 public CharacterCleaner(MarketHelper marketHelper, SparkHelper sparkHelper, ProductionManager productionManager, MissionProcessor missionProcessor)
 {
     _marketHelper      = marketHelper;
     _sparkHelper       = sparkHelper;
     _productionManager = productionManager;
     _missionProcessor  = missionProcessor;
 }
Exemplo n.º 8
0
        public override ActionResult List()
        {
            var tab = new Tab();
            var planStateCategory = CategoryFactory.GetCategory(typeof(PlanReceiptState), "State");

            planStateCategory.SetDefaultItem(PlanReceiptState.UnReceipt.ToString());
            tab.Categories.Add(planStateCategory);

            var yearCategory = CategoryFactory.GetYearCategory("BelongYear", 10, 2);

            yearCategory.SetDefaultItem(DateTime.Now.Year.ToString());
            tab.Categories.Add(yearCategory);

            var quarterCategory = CategoryFactory.GetQuarterCategory("BelongQuarter");

            quarterCategory.SetDefaultItem(MarketHelper.GetQuarter(DateTime.Now).ToString());
            tab.Categories.Add(quarterCategory);

            var monthCategory = CategoryFactory.GetMonthCategory("BelongMonth");

            tab.Categories.Add(monthCategory);

            tab.IsDisplay          = true;
            ViewBag.Tab            = tab;
            ViewBag.DefaultState   = PlanReceiptState.UnReceipt.ToString();
            ViewBag.DefaultYear    = DateTime.Now.Year.ToString();
            ViewBag.DefaultQuarter = MarketHelper.GetQuarter(DateTime.Now).ToString();
            ViewBag.DefaultMonth   = DateTime.Now.Month.ToString();
            return(View());
        }
Exemplo n.º 9
0
        public void Check()
        {
            var warningPeriod = DateTime.Now.Subtract(TimeSpan.FromHours(48));
            var minDate       = DateTime.Now.AddMonths(-3);

            var messages = new List <string>();

            using (var db = _dbFactory.GetRWDb())
            {
                var actions = db.SystemActions.GetAllAsDto()
                              .Where(a => a.Type == (int)SystemActionType.UpdateOnMarketReturnOrder
                                     //&& (a.Status == (int) SystemActionStatus.Fail //NOTE: all statuses, in case some of action isn't process
                                     && a.Status != (int)SystemActionStatus.Done &&
                                     a.CreateDate <warningPeriod &&
                                                   a.CreateDate> minDate)
                              .ToList();

                foreach (var action in actions)
                {
                    var      data  = JsonConvert.DeserializeObject <ReturnOrderInput>(action.InputData);
                    DTOOrder order = null;
                    if (data.OrderId > 0)
                    {
                        order = db.Orders.GetAllAsDto().FirstOrDefault(o => o.Id == data.OrderId);
                    }
                    if (order == null)
                    {
                        order = db.Orders.GetAllAsDto().FirstOrDefault(o => o.OrderId == data.OrderNumber);
                    }

                    if (order == null)
                    {
                        _log.Info("Unable to find order: orderId=" + data.OrderId + ", orderNumber=" + data.OrderNumber);
                        continue;
                    }

                    var requestedAmount = data.Items.Sum(i => i.RefundItemPrice
                                                         + (data.IncludeShipping ? i.RefundShippingPrice : 0)
                                                         - (data.DeductShipping ? i.DeductShippingPrice : 0)
                                                         - (data.IsDeductPrepaidLabelCost ? i.DeductPrepaidLabelCost : 0));

                    messages.Add("Order #: " + order.OrderId
                                 + ", market: " + MarketHelper.GetMarketName(order.Market, order.MarketplaceId)
                                 + ", status: " + SystemActionHelper.GetName((SystemActionStatus)action.Status)
                                 + ", amount: " + requestedAmount
                                 + ", create date: " + action.CreateDate);
                }
            }

            if (messages.Any())
            {
                _log.Info(String.Join("\r\n", messages));
                _emailService.SendSystemEmailToAdmin("Support Notification: " + Name + " - To Review (" + messages.Count() + ")",
                                                     "Unprocessed refunds:<br/>" + String.Join("<br/>", messages));
            }
            else
            {
                _emailService.SendSystemEmailToAdmin("Support Notification: " + Name + " - Success", "");
            }
        }
Exemplo n.º 10
0
        public void Init(IUnitOfWork db)
        {
            GenderList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.GENDER).ToList(), "Id", "Value");

            ItemStyleList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.ITEMSTYLE).ToList(), "Id", "Value");

            var marketplaceList = db.Marketplaces.GetAllAsDto().Where(m => m.IsActive).Select(m => new SelectListItem()
            {
                Text  = MarketHelper.GetMarketName(m.Market, m.MarketplaceId),
                Value = m.Market + "_" + m.MarketplaceId
            });

            MarketplaceList = new SelectList(marketplaceList, "Value", "Text");

            MainLicenseList = db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.MAIN_LICENSE).OrderBy(l => l.Value).Select(fv => new SelectListItemEx
            {
                Text        = fv.Value,
                Value       = fv.Id.ToString(),
                ParentValue = fv.Id.ToString()
            }).ToList();

            MainLicenseList.Insert(0, new SelectListItemEx()
            {
                Text        = "No License",
                Value       = "0",
                ParentValue = "0",
            });

            SubLicenseList = db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.SUB_LICENSE1).OrderBy(l => l.Value).Select(fv => new SelectListItemEx
            {
                Text        = fv.Value,
                Value       = fv.Id.ToString(),
                ParentValue = fv.ExtendedValue.ToString()
            }).ToList();
        }
Exemplo n.º 11
0
        public override async Task <TaskRes> Execute(HtmlDocument htmlDoc, ChromeDriver wb, Files.Models.AccModels.Account acc)
        {
            var building = vill.Build.Buildings.FirstOrDefault(x => x.Type == Classificator.BuildingEnum.Marketplace);

            if (building == null)
            {
                //update dorg, no buildingId found?
                TaskExecutor.AddTask(acc, new UpdateDorf2()
                {
                    ExecuteAt = DateTime.Now, vill = vill
                });
                Console.WriteLine($"There is no {building} in this village!");
                return(TaskRes.Executed);
            }
            await acc.Wb.Navigate($"{acc.AccInfo.ServerUrl}/build.php?id={building.Id}&t=5");

            //get troop resource/time cost
            var troopCost = TroopCost.GetResourceCost(TrainTask.Troop, TrainTask.Great);

            var trainNum = TroopsHelper.TroopsToFill(acc, TargetVill, TrainTask.Troop, TrainTask.Great);

            //how many troops we can train with resources that we have
            var mainVillResStored   = ResourcesHelper.ResourcesToArray(vill.Res.Stored.Resources);
            var targetVillStoredRes = ResourcesHelper.ResourcesToArray(TargetVill.Res.Stored.Resources);

            // Max troops we can train with resources that we have
            var maxTroopsToTrain = ResourcesHelper.MaxTroopsToTrain(mainVillResStored, targetVillStoredRes, troopCost);

            // If we don't have enough rsoruces to train the number of troops that we want, we will train max number of troops that we can
            if (maxTroopsToTrain < trainNum)
            {
                trainNum = maxTroopsToTrain;
            }

            //calculate how many resources we need to train trainNum of troops
            long[] neededRes = troopCost.Select(x => x * trainNum).ToArray();

            //if we have already enough resources in the target village, no need to send anything
            if (ResourcesHelper.EnoughRes(targetVillStoredRes, neededRes))
            {
                this.TrainTask.ExecuteAt = DateTime.Now;
                TaskExecutor.ReorderTaskList(acc);
                return(TaskRes.Executed);
            }

            //amount of resources we want to transit to target village
            var sendRes = ResourcesHelper.SendAmount(targetVillStoredRes, neededRes);

            // Check how many merchants we have. If we have 0, wait till some come back.

            var transitTimespan = await MarketHelper.MarketSendResource(acc, sendRes, TargetVill, this);

            //train the troops in the target village after we send the needed
            this.TrainTask.ExecuteAt = DateTime.Now.Add(transitTimespan).AddSeconds(5);
            TaskExecutor.ReorderTaskList(acc);

            //TODO: Update marketplace sending
            return(TaskRes.Executed);
        }
        public void Init(IUnitOfWork db)
        {
            GenderList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.GENDER).ToList(), "Id", "Value");

            ItemStyleList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.ITEMSTYLE).ToList(), "Id", "Value");

            SleeveList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.SLEEVE).ToList(), "Id", "Value");

            DropShipperList = OptionsHelper.DropShipperList;

            HolidayList = new SelectList(db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.HOLIDAY).ToList(), "Id", "Value");

            var marketplaceList = db.Marketplaces.GetAllAsDto().Select(m => new SelectListItem()
            {
                Text  = MarketHelper.GetMarketName(m.Market, m.MarketplaceId),
                Value = m.Market + ";" + m.MarketplaceId
            });

            MarketplaceList = new SelectList(marketplaceList, "Value", "Text");

            OnlineStatusList = new SelectList(new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text  = "Online",
                    Value = "Online",
                },
                new SelectListItem()
                {
                    Text  = "Offline",
                    Value = "Offline"
                }
            },
                                              "Value",
                                              "Text");

            MainLicenseList = db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.MAIN_LICENSE).OrderBy(l => l.Value).Select(fv => new SelectListItemEx
            {
                Text        = fv.Value,
                Value       = fv.Id.ToString(),
                ParentValue = fv.Id.ToString()
            }).ToList();

            MainLicenseList.Insert(0, new SelectListItemEx()
            {
                Text        = "No License",
                Value       = "0",
                ParentValue = "0",
            });

            SubLicenseList = db.FeatureValues.GetValuesByFeatureId(StyleFeatureHelper.SUB_LICENSE1).OrderBy(l => l.Value).Select(fv => new SelectListItemEx
            {
                Text        = fv.Value,
                Value       = fv.Id.ToString(),
                ParentValue = fv.ExtendedValue.ToString()
            }).ToList();
        }
Exemplo n.º 13
0
        private void LoadMarketWorkertranactionDoWork(object sender, DoWorkEventArgs e)
        {
            var vehicle = new VehicleViewModel()
            {
                Mileage  = _manheimVehicle.Odometer,
                Year     = _manheimVehicle.Year,
                Make     = _manheimVehicle.Make,
                Model    = _manheimVehicle.Model,
                Trim     = _manheimVehicle.Trim,
                Vin      = _manheimVehicle.Vin,
                Mmr      = _manheimVehicle.Price,
                DealerId = _dealer.DealerId
            };

            try
            {
                using (var context = new VincontrolEntities())
                {
                    var queryDealer = context.Dealers.FirstOrDefault(d => d.DealerId == vehicle.DealerId);

                    var dealer = new DealershipViewModel(queryDealer);

                    if (!String.IsNullOrEmpty(vehicle.Vin))
                    {
                        var autoService = new ChromeAutoService();

                        var vehicleInfo = autoService.GetVehicleInformationFromVin(vehicle.Vin);

                        if (vehicleInfo != null)
                        {
                            vehicle.Make = vehicleInfo.bestMakeName;

                            vehicle.Year = vehicleInfo.modelYear;

                            vehicle.Model = vehicleInfo.bestModelName;

                            if (!String.IsNullOrEmpty(vehicleInfo.bestTrimName) &&
                                !vehicleInfo.bestTrimName.Contains("/"))
                            {
                                vehicle.Trim = vehicleInfo.bestTrimName;
                            }

                            if (!String.IsNullOrEmpty(vehicleInfo.vinDescription.bodyType))
                            {
                                vehicle.BodyStyle = vehicleInfo.vinDescription.bodyType;
                            }
                        }
                    }
                    _marketData = MarketHelper.GetMarketCarsForNationwideMarketOnVinsell(vehicle, dealer);
                }
            }
            catch (Exception ex)
            {
                _marketData.Error = ex.Message;
            }
        }
 public PBSDockingBase(MarketHelper marketHelper, ICorporationManager corporationManager, IChannelManager channelManager, ICentralBank centralBank, IRobotTemplateRelations robotTemplateRelations, DockingBaseHelper dockingBaseHelper, SparkTeleportHelper sparkTeleportHelper, PBSObjectHelper <PBSDockingBase> .Factory pbsObjectHelperFactory) : base(channelManager, centralBank, robotTemplateRelations, dockingBaseHelper)
 {
     _marketHelper                   = marketHelper;
     _corporationManager             = corporationManager;
     _sparkTeleportHelper            = sparkTeleportHelper;
     _pbsObjectHelper                = pbsObjectHelperFactory(this);
     _pbsReinforceHandler            = new PBSReinforceHandler <PBSDockingBase>(this);
     _standingController             = new PBSStandingController <PBSDockingBase>(this);
     _pbsTerritorialVisibilityHelper = new PBSTerritorialVisibilityHelper(this);
 }
Exemplo n.º 15
0
        /// <summary>
        /// 拆分计划收款
        /// </summary>
        /// <param name="splitValue">拆分金额</param>
        /// <param name="planDate">计划日期</param>
        /// <param name="IsPartReceipt">是否部分到款自动拆分</param>
        public S_C_PlanReceipt Split(decimal splitValue, DateTime?planDate = null, bool PartReceiptAutoSplit = false)
        {
            if (this.State != PlanReceiptState.UnReceipt.ToString() && !PartReceiptAutoSplit)
            {
                throw new Formula.Exceptions.BusinessException("只能拆分未到款的记录,操作失败");
            }
            if (splitValue < 0)
            {
                throw new Formula.Exceptions.BusinessException("拆分金额不能小于0");
            }
            if (splitValue >= this.PlanReceiptValue)
            {
                throw new Formula.Exceptions.BusinessException("拆分金额【" + splitValue + "】必须小于原计划收款金额【" + this.PlanReceiptValue + "】");
            }
            var marketEntities = this.GetMarketContext();
            var plan           = this.Clone <S_C_PlanReceipt>();

            plan.ID = FormulaHelper.CreateGuid();

            if (String.IsNullOrEmpty(this.RelateParentID))
            {
                plan.RelateParentID = this.ID;
            }
            if (!PartReceiptAutoSplit)
            {
                this.PlanReceiptValue = this.PlanReceiptValue - splitValue;
            }
            if (!PartReceiptAutoSplit)
            {
                plan.RelateParentID = plan.ID;
            }
            plan.PlanReceiptValue = splitValue;
            plan.FactReceiptValue = 0;
            plan.PlanReceiptDate  = planDate;
            plan.ReceiptDate      = null;
            plan.ContractInfoID   = this.ContractInfoID;
            plan.ContractName     = this.ContractName;
            if (planDate.HasValue)
            {
                var date = Convert.ToDateTime(planDate);
                plan.BelongMonth   = date.Month;
                plan.BelongQuarter = MarketHelper.GetQuarter(date);
                plan.BelongYear    = date.Year;
                if (date.Month >= 10)
                {
                    plan.PlanReceiptYearMonth = date.Year.ToString() + date.Month.ToString();
                }
                else
                {
                    plan.PlanReceiptYearMonth = date.Year.ToString() + "0" + date.Month.ToString();
                }
            }
            marketEntities.S_C_PlanReceipt.Add(plan);
            return(plan);
        }
Exemplo n.º 16
0
        /// <summary>
        /// PostTask. Repeats sending resources and training troops. Needs to fill up training above X hours.
        /// </summary>
        /// <param name="htmlDoc">html of the page</param>
        /// <param name="acc">Account</param>
        public void RepeatTrainingCycle(HtmlDocument htmlDoc, Account acc)
        {
            var trainingEnds = TroopsHelper.GetTrainingTimeForBuilding(building, vill);

            // If sendRes is activated and there are some resources left to send
            if (vill.Settings.SendRes && MarketHelper.GetResToMainVillage(this.vill).Sum() > 0)
            {
                // Check If all troops are filled in this vill before sending resources back to main village
                if (TroopsHelper.EverythingFilled(acc, vill))
                {
                    TaskExecutor.AddTask(acc, new SendResToMain()
                    {
                        vill = this.vill, ExecuteAt = DateTime.MinValue.AddHours(1)
                    });
                }
            }
            if (vill.Settings.GetRes)
            {
                var nextCycle = trainingEnds.AddHours(-acc.Settings.FillInAdvance);
                if (nextCycle < DateTime.Now)
                {
                    // Send resources asap.
                    nextCycle = DateTime.MinValue.AddHours(3);
                }
                else
                {
                    TaskExecutor.AddTask(acc, new UpdateDorf1()
                    {
                        ExecuteAt = nextCycle,
                        vill      = this.vill
                    });
                }

                TaskExecutor.AddTask(acc, new SendResFillTroops()
                {
                    ExecuteAt  = nextCycle.AddMilliseconds(1),
                    vill       = AccountHelper.GetMainVillage(acc),
                    TargetVill = this.vill,
                    TrainTask  = this
                });
                this.NextExecute = nextCycle.AddMinutes(30); //will get overwritten in sendResFillTroops
                TaskExecutor.ReorderTaskList(acc);
            }
            else
            {
                var later = DateTime.Now.AddMinutes(1);
                // Don't training again sooner than after 10min
                if (later > trainingEnds)
                {
                    trainingEnds = later;
                }

                this.NextExecute = trainingEnds;
            }
        }
Exemplo n.º 17
0
        public async Task SellEmoji([Summary("Which market to sell emoji in, either \"global\" or the \"local\" server market")] Market market, [Summary("Which emoji you want to sell")] string emoji, [Summary("How much you want to sell the emoji for")] long price)
        {
            if (!EmojiHelper.IsValidEmoji(emoji))
            {
                throw new DiscordCommandException("Bad emoji", $"{emoji} cannot be bought or sold");
            }

            var inventory = Context.GetInventory(Context.CallerProfile);

            if (price <= 0)
            {
                throw new DiscordCommandException("Number too low", $"{Context.User.Mention}, you can't sell things for {(price == 0 ? "" : "less than ")}no money");
            }

            if (!inventory.HasEmoji(emoji))
            {
                throw new DiscordCommandException("Nothing to sell", $"{Context.User.Mention}, you don't have any {emoji} to sell");
            }

            var message = await ReplyAsync($"{Context.User.Mention}, are you sure you want to sell {emoji} for {Context.Money(price)}?");

            ReactionMessageHelper.CreateConfirmReactionMessage(Context, message,
                                                               async r =>
            {
                Context.ClearCachedValues();
                inventory = Context.GetInventory(Context.User);

                if (!inventory.HasEmoji(emoji))
                {
                    await message.ModifyAsync(mod =>
                    {
                        mod.Content          = "";
                        EmbedBuilder builder = new EmbedBuilder();
                        builder.WithColor(Color.Red);
                        builder.WithTitle(Strings.SomethingChanged);
                        builder.WithDescription($"{Context.User.Mention}, you no longer have any {emoji} to sell");
                        mod.Embed = builder.Build();
                    });
                    return;
                }

                var(toSell, index) = inventory.Enumerate(emoji).Select((e, i) => (e, i)).OrderBy(e => e.e.Transactions.Count).First();

                inventory.RemoveEmoji(emoji, index);

                MarketHelper.AddListing(Context, MarketId(market), toSell, price);
                inventory.Save();
                await message.ModifyAsync(m => m.Content = $"{Context.WhatDoICall(Context.User)} listed their {emoji} for {Context.Money(price)} in {Context.GetMarketName(MarketId(market))}");
            },
                                                               async r =>
            {
                await message.ModifyAsync(m => m.Content = $"Cancelled listing of {emoji}");
            });
        }
        public void AddPoints()
        {
            using (var db = _dbFactory.GetRWDb())
            {
                var marketList = new MarketplaceKeeper(_dbFactory, false).GetAll();
                var today      = _time.GetAppNowTime().Date;
                foreach (var market in marketList)
                {
                    var listingErrorCount = (from i in db.Items.GetAll()
                                             join l in db.Listings.GetAll() on i.Id equals l.ItemId
                                             where
                                             l.RealQuantity > 0 &&
                                             !l.IsRemoved &&
                                             (i.ItemPublishedStatus == (int)PublishedStatuses.PublishingErrors ||
                                              i.ItemPublishedStatus == (int)PublishedStatuses.PublishedInProgress) &&
                                             i.Market == market.Market &&
                                             (i.MarketplaceId == market.MarketplaceId || String.IsNullOrEmpty(market.MarketplaceId))
                                             select i.Id
                                             ).Count();

                    var marketTag = market.Market + "_" + market.MarketplaceId;
                    var chart     = db.Charts.GetAll().FirstOrDefault(ch => ch.ChartName == ChartHelper.ListingErrorChartName &&
                                                                      ch.ChartTag == marketTag);

                    if (chart == null)
                    {
                        chart = new Chart()
                        {
                            ChartName     = ChartHelper.ListingErrorChartName,
                            ChartSubGroup = MarketHelper.GetMarketName(market.Market, market.MarketplaceId),
                            ChartTag      = marketTag,
                            CreateDate    = _time.GetAppNowTime()
                        };
                        db.Charts.Add(chart);
                        db.Commit();
                    }

                    var existPoint = db.ChartPoints.GetAll().FirstOrDefault(p => p.ChartId == chart.Id &&
                                                                            p.Date == today);

                    if (existPoint == null)
                    {
                        existPoint = new ChartPoint()
                        {
                            ChartId = chart.Id,
                            Date    = today,
                        };
                        db.ChartPoints.Add(existPoint);
                    }
                    existPoint.Value = listingErrorCount;
                }
                db.Commit();
            }
        }
Exemplo n.º 19
0
        public override async Task <TaskRes> Execute(Account acc)
        {
            await base.Execute(acc);

            if (!await VillageHelper.EnterBuilding(acc, Vill, Classificator.BuildingEnum.Marketplace, "&t=5"))
            {
                return(TaskRes.Executed);
            }


            //get troop resource/time cost
            var troopCost = TroopCost.GetResourceCost(TrainTask.Troop, TrainTask.Great);

            var trainNum = TroopsHelper.TroopsToFill(acc, TargetVill, TrainTask.Troop, TrainTask.Great);

            //how many troops we can train with resources that we have
            var mainVillResStored   = Vill.Res.Stored.Resources.ToArray();
            var targetVillStoredRes = TargetVill.Res.Stored.Resources.ToArray();

            // Max troops we can train with resources that we have
            var maxTroopsToTrain = ResourcesHelper.MaxTroopsToTrain(mainVillResStored, targetVillStoredRes, troopCost);

            // If we don't have enough rsoruces to train the number of troops that we want, we will train max number of troops that we can
            if (maxTroopsToTrain < trainNum)
            {
                trainNum = maxTroopsToTrain;
            }

            //calculate how many resources we need to train trainNum of troops
            long[] neededRes = troopCost.Select(x => x * trainNum).ToArray();

            //if we have already enough resources in the target village, no need to send anything
            if (ResourcesHelper.IsEnoughRes(targetVillStoredRes, neededRes))
            {
                this.TrainTask.ExecuteAt = DateTime.Now;
                TaskExecutor.ReorderTaskList(acc);
                return(TaskRes.Executed);
            }

            //amount of resources we want to transit to target village
            var sendRes = ResourcesHelper.SendAmount(targetVillStoredRes, neededRes);

            // Check how many merchants we have. If we have 0, wait till some come back.

            var transitTimespan = await MarketHelper.MarketSendResource(acc, sendRes, TargetVill, this);

            //train the troops in the target village after we send the needed
            this.TrainTask.ExecuteAt = DateTime.Now.Add(transitTimespan).AddSeconds(5);
            TaskExecutor.ReorderTaskList(acc);

            //TODO: Update marketplace sending
            return(TaskRes.Executed);
        }
Exemplo n.º 20
0
 public MarketPriceViewViewModel(StyleItemSaleToMarketDTO saleToMarket)
 {
     SaleId             = saleToMarket.SaleId;
     Market             = (MarketType)saleToMarket.Market;
     MarketplaceId      = saleToMarket.MarketplaceId;
     MarketName         = MarketHelper.GetShortName(saleToMarket.Market, saleToMarket.MarketplaceId);
     MarketCurrency     = PriceHelper.GetCurrencySymbol(Market, MarketplaceId);
     SalePrice          = saleToMarket.SalePrice;
     SFPSalePrice       = saleToMarket.SFPSalePrice;
     SalePercent        = saleToMarket.SalePercent;
     ApplyToNewListings = saleToMarket.ApplyToNewListings;
 }
        public void updateCell(Schemas.Category.CategoryInfo entity)
        {
            // Establecemos el texto del label dentro del collectionview
            lblName.Text = entity.Name;
            // Establecemos la imagen dentro del collectionview
            CategoryImage.Image = MarketHelper.FromUrl(entity.Image);

            // Aqui comprobamos que la imagen del modulo NUBE viene rara
            //if (entity.Id == 6)
            //{
            //    btnCategoryImage.SetImage(MarketHelper.FromUrl("https://sitioinstitucional.blob.core.windows.net/contenido-sitio/Aplicativos-internos/mktp/categories/contables.png"), UIControlState.Normal);
            //}
        }
Exemplo n.º 22
0
        public void Save()
        {
            var marketDBContext = this.GetDbContext <MarketEntities>();

            //this.ValidateContractInfo();
            this.SynchContractProperties();
            if (this.SignDate.HasValue)
            {
                var date = Convert.ToDateTime(this.SignDate);
                this.BelongQuarter = MarketHelper.GetQuarter(date);
                this.BelongYear    = date.Year;
                this.BelongMonth   = date.Month;
                this.IsSigned      = ContractIsSigned.Signed.ToString();
                if (this.ContractState == "WaitSign" || this.ContractState == "Regist")
                {
                    //如果有签约日期,且合同状态为待签约或起草登记状态的,则修订合同状态为履行
                    this.ContractState = "Sign";
                }
            }
            else
            {
                this.IsSigned = ContractIsSigned.UnSigned.ToString();
            }
            this.SummaryContractData();
            if (!String.IsNullOrEmpty(this.PartyA))
            {
                var customer = marketDBContext.S_F_Customer.Find(this.PartyA);
                if (customer == null)
                {
                    throw new Formula.Exceptions.BusinessException("指定的客户信息不存在,保存合同信息失败");
                }
                if (customer.BusinessDate == null)
                {
                    customer.BusinessDate = DateTime.Now;
                }
                if (this.SignDate.HasValue)
                {
                    customer.IsCooperated = YesOrNo.Yes.ToString();
                }
                else if (marketDBContext.S_C_ManageContract.Count(d => d.SignDate.HasValue && d.PartyA == customer.ID &&
                                                                  d.ID != this.ID) == 0)
                {
                    customer.IsCooperated = YesOrNo.No.ToString();
                }
                else
                {
                    customer.IsCooperated = YesOrNo.Yes.ToString();
                }
            }
        }
Exemplo n.º 23
0
    // Use this for initialization
    void Start()
    {
        endGameMessage.SetActive(false);
        TradeResults.SetActive(false);
        map = WMSK.instance;

        turnButton.onClick.AddListener(delegate { Turn_Button(); });
        endGameContinueButton.onClick.AddListener(delegate { endDemo(); });

        RectTransform tradeResultsRect = TradeResults.GetComponent<RectTransform>();
        tradeResultsEnter = UIAnimator.Move(tradeResultsRect, new Vector2(0.5f, 0f), new Vector2(0.5f, 0.48f), 1f).SetModifier(Modifier.Linear);

        MarketHelper.resetBidsAndOffers();
    }
 private string GetMarketName(string marketValue)
 {
     try
     {
         var parts       = marketValue.Split(":".ToCharArray());
         var market      = Int32.Parse(parts[0]);
         var marketplace = parts[1];
         return(MarketHelper.GetMarketName(market, marketplace));
     }
     catch
     {
         return("n/a");
     }
 }
Exemplo n.º 25
0
        private DataTable GetDefaultTable(int startYear, int endYear)
        {
            var data = new DataTable();

            data.Columns.Add("Title", typeof(string));
            data.Columns.Add("Year", typeof(int));
            data.Columns.Add("Quater", typeof(int));
            data.Columns.Add("ReceiptValue", typeof(decimal));
            data.Columns.Add("PlanReceiptValue", typeof(decimal));
            data.Columns.Add("InvoiceValue", typeof(decimal));
            if (startYear > endYear)
            {
                throw new Formula.Exceptions.BusinessException("起始年份不能大于结束年份!");
            }

            for (int i = startYear; i < endYear; i++)
            {
                for (int j = 1; j <= 4; j++)
                {
                    var row = data.NewRow();
                    row["Year"]             = i;
                    row["Quater"]           = j;
                    row["Title"]            = i.ToString() + "年" + j + "季度";
                    row["ReceiptValue"]     = 0;
                    row["PlanReceiptValue"] = 0;
                    row["InvoiceValue"]     = 0;
                    data.Rows.Add(row);
                }
            }

            var currentQuarter = MarketHelper.GetQuarter(DateTime.Now);

            if (endYear != DateTime.Now.Year)
            {
                currentQuarter = 4;
            }

            for (int j = 1; j <= currentQuarter; j++)
            {
                var row = data.NewRow();
                row["Year"]             = endYear;
                row["Quater"]           = j;
                row["Title"]            = endYear.ToString() + "年" + j + "季度";
                row["ReceiptValue"]     = 0;
                row["PlanReceiptValue"] = 0;
                row["InvoiceValue"]     = 0;
                data.Rows.Add(row);
            }
            return(data);
        }
        public static SalesByDateGraphViewModel Build(IUnitOfWork db, PeriodType periodType, ValueType valueType)
        {
            var result = new SalesByDateGraphViewModel();
            var items  = db.Items.GetSalesInfoByDayAndMarket().ToList();

            var             labels      = new List <string>();
            IList <int>     unitSeries  = new List <int>();
            IList <decimal> priceSeries = new List <decimal>();

            var startDate = DateHelper.GetAppNowTime().Date;

            if (periodType == PeriodType.Day)
            {
                startDate = DateHelper.GetAppNowTime().Date;
            }
            if (periodType == PeriodType.Week)
            {
                startDate = startDate.AddDays(-7);
            }
            if (periodType == PeriodType.Month)
            {
                startDate = startDate.AddDays(-31);
            }

            var periodItems = items.Where(it => it.Date >= startDate).ToList();

            periodItems.Where(pi => pi.Market == (int)MarketType.eBay).ToList().ForEach(pi => pi.MarketplaceId = null);

            var byMarket = periodItems.GroupBy(i => new { i.Market, i.MarketplaceId })
                           .Select(i => new
            {
                Market        = i.Key.Market,
                MarketplaceId = i.Key.MarketplaceId,
                Price         = i.Sum(j => j.Price),
                Quantity      = i.Sum(j => j.Quantity)
            });

            foreach (var item in byMarket)
            {
                labels.Add(MarketHelper.GetMarketName(item.Market, item.MarketplaceId));
                unitSeries.Add(item.Quantity);
                priceSeries.Add(item.Price);
            }
            result.PriceSeries = new [] { priceSeries };
            result.UnitSeries  = new [] { unitSeries };
            result.Labels      = new[] { labels };
            return(result);
        }
Exemplo n.º 27
0
        public async Task RaritiesMessage()
        {
            string message;
            var    emotes = MarketHelper.GetRarities(Context.Bot, 0);

            foreach (var rarity in Rarity.Rarities)
            {
                message = $"```\n{rarity.Label}:\n";
                foreach (var e in emotes[rarity])
                {
                    message += new Discord.Emoji(e);
                }
                message += "\n```";
                await ReplyAsync(message);
            }
        }
Exemplo n.º 28
0
 /// <summary>
 /// 保存分包合同信息
 /// </summary>
 public void Save()
 {
     if (this.SignDate.HasValue)
     {
         var date = Convert.ToDateTime(this.SignDate);
         this.BelongYear    = date.Year;
         this.BelongMonth   = date.Month;
         this.BelongQuarter = MarketHelper.GetQuarter(date);
         if (this.State == "WaitSign" || this.State == "Regist")
         {
             this.State = "Sign";
         }
     }
     this.SychProperties();
     this.SummaryData();
 }
Exemplo n.º 29
0
        public override async Task <TaskRes> Execute(Account acc)
        {
            var wb = acc.Wb.Driver;

            if (!await VillageHelper.EnterBuilding(acc, Vill, Classificator.BuildingEnum.Marketplace))
            {
                return(TaskRes.Executed);
            }

            var npcMerchant = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("npcMerchant"));
            var npcButton   = npcMerchant.Descendants("button").FirstOrDefault(x => x.HasClass("gold"));

            // Exchange resources button
            await DriverHelper.ClickById(acc, npcButton.Id);

            var resSum    = Parser.RemoveNonNumeric(acc.Wb.Html.GetElementbyId("remain").InnerText);
            var targetRes = MarketHelper.NpcTargetResources(Vill, resSum);

            if (!Vill.Market.Npc.NpcIfOverflow && MarketHelper.NpcWillOverflow(Vill, targetRes))
            {
                return(TaskRes.Executed);
            }
            for (int i = 0; i < 4; i++)
            {
                //await acc.Wb.Driver.FindElementById($"m2[{i}]").Write(targetRes[i]);
                switch (acc.AccInfo.ServerVersion)
                {
                case Classificator.ServerVersionEnum.T4_4:
                    await DriverHelper.ExecuteScript(acc, $"document.getElementById('m2[{i}]').value='{targetRes[i]}'");

                    break;

                case Classificator.ServerVersionEnum.T4_5:
                    await DriverHelper.ExecuteScript(acc, $"document.getElementsByName('desired{i}')[0].value='{targetRes[i]}'");

                    break;
                }
            }

            var submit     = acc.Wb.Html.GetElementbyId("submitText");
            var distribute = submit.Descendants("button").FirstOrDefault();

            await DriverHelper.ExecuteScript(acc, $"document.getElementById('{distribute.Id}').click()");

            wb.ExecuteScript($"document.getElementById('npc_market_button').click()"); //Exchange resources button
            return(TaskRes.Executed);
        }
Exemplo n.º 30
0
        public static IList <MarketplaceName> GetSalesMarketplaces()
        {
            var marketplaces = new List <MarketplaceName>()
            {
                new MarketplaceName()
                {
                    Market = MarketType.Amazon, MarketplaceId = MarketplaceKeeper.AmazonComMarketplaceId
                },
                new MarketplaceName()
                {
                    Market = MarketType.Walmart, MarketplaceId = ""
                },
                new MarketplaceName()
                {
                    Market = MarketType.WalmartCA, MarketplaceId = ""
                },
                new MarketplaceName()
                {
                    Market = MarketType.Amazon, MarketplaceId = MarketplaceKeeper.AmazonCaMarketplaceId
                },
                new MarketplaceName()
                {
                    Market = MarketType.AmazonEU, MarketplaceId = ""
                },
                new MarketplaceName()
                {
                    Market = MarketType.AmazonAU, MarketplaceId = ""
                },
                new MarketplaceName()
                {
                    Market = MarketType.eBay, MarketplaceId = ""
                },
                new MarketplaceName()
                {
                    Market = MarketType.Jet, MarketplaceId = ""
                }
            };

            foreach (var m in marketplaces)
            {
                m.ShortName = MarketHelper.GetShortName((int)m.Market, m.MarketplaceId);
                m.DotName   = MarketHelper.GetDotShortName((int)m.Market, m.MarketplaceId);
            }
            return(marketplaces);
        }