示例#1
0
 private void OutputHelpMessage(ArgumentHelper option, bool required, bool input)
 {
     if (option.Required == required && option.ConsumesNextArg == input)
     {
         DeploymentWorker.OutputMessage(string.Format(CultureInfo.InvariantCulture, "     {0, -20}{1}", option.MatchString, option.HelpString));
     }
 }
示例#2
0
        public static bool AddJob(JobArgs args, bool fromRedis = false)
        {
            ArgumentHelper.AssertValuesPositive(args.TenantId);
            ArgumentHelper.AssertNotNullOrEmpty(args.JobKey);
            ArgumentHelper.AssertNotNullOrEmpty(args.JobAppName);
            ArgumentHelper.AssertNotNull(args.Job, "job must not null");

            string redisKey     = MakeRedisKey(args.TenantId, args.JobAppName);
            string redisLockKey = MakeLockKey(args.TenantId, args.JobKey, args.JobAppName);

            //不是从redis加载的需要保存到redis,如果是从redis加载则不用再回写了
            if (!fromRedis)
            {
                string redisJobValue = MakeJobValue(args.OperatorId, args.RunTime, args.Job);
                RedisCacheHelper.SetHRedis(args.TenantId, redisKey, args.JobKey, redisJobValue);
            }

            JobManager.AddJob(
                () =>
            {
                //加分布式锁
                //获取Key 对应的Value。
                //拆Value,获取Runtime
                //比较runtime,如果在允许的时间差范围内,则执行。否则,return
                //执行完,删掉jobKey
                //释放分布式锁
                ApplicationContext.Current.TenantId        = args.TenantId;
                ApplicationContext.Current.UserId          = args.OperatorId;
                ApplicationContext.Current.ApplicationName = args.JobAppName;
                var lockRes = DistributeRedisLock.TryLock(args.TenantId, redisLockKey, "", args.LimitSeconds);
                if (!lockRes)
                {
                    LogHelper.Instance.Debug($"定时任务未执行,加锁失败。LockKey:{redisLockKey},JobKey:{args.JobKey}");
                    return;
                }
                try
                {
                    var jobValue = RedisCacheHelper.GetHRedis(args.TenantId, redisKey, args.JobKey);
                    if (string.IsNullOrEmpty(jobValue))
                    {
                        LogHelper.Instance.Debug($"定时任务未执行,Key不存在。{args.JobKey}");
                        return;
                    }
                    var jobInfo = GetJobValue(jobValue);
                    if (jobInfo == null)
                    {
                        LogHelper.Instance.Debug($"定时任务未执行,JobInfo为空。JobKey:{args.JobKey}, JobValue:{jobValue}");
                        return;
                    }
                    //比如,一个Job的实际执行时间是12:00:00,Redis里存的是12:00:00,实际FluentScheduler也是12:00:00触发执行的。
                    //但是执行到比较时间这块,可能是12:00:05了(可能要排队、或者性能问题等),导致时间不匹配。因此,我们允许时间出现轻微误差
                    //但是,如果时间间隔超过该轻微误差(1分钟),则认为时间不匹配
                    if (Math.Abs((jobInfo.Item2 - DateTime.Now).TotalSeconds) >= 60)
                    {
                        LogHelper.Instance.Debug($"定时任务未执行,时间不匹配。JobKey:{args.JobKey}, JobValue:{jobValue}");
                        return;
                    }
                    args.Job.Execute();
                    RedisCacheHelper.DelHRedis(args.TenantId, redisKey, args.JobKey);
                    LogHelper.Instance.Debug($"执行定时任务成功。JobKey:{args.JobKey},JobValue{jobValue}");
                }
                catch (Exception ex)
                {
                    LogHelper.Instance.Error($"执行定时任务异常。JobKey:{args.JobKey},EX:{ex.Message}");
                }
                finally
                {
                    DistributeRedisLock.UnLock(args.TenantId, redisLockKey, "");
                }
            },
                (schedule) =>
            {
                RememberTenant(args.TenantId);
                schedule.WithName(args.JobKey).ToRunOnceAt(args.RunTime);
            });
            return(true);
        }
示例#3
0
        /// <summary>
        /// Create new listing (and checking for existing in case )
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="item"></param>
        public Listing StoreOrUpdate(ItemDTO dto,
                                     Item item,
                                     MarketType market,
                                     string marketplaceId,
                                     DateTime when)
        {
            if (!ArgumentHelper.CheckMarket(market))
            {
                throw new ArgumentNullException("market");
            }
            if (!ArgumentHelper.CheckMarketplaceId(market, marketplaceId))
            {
                throw new ArgumentNullException("marketplaceId");
            }

            var listing = GetFiltered(l => l.ListingId == dto.ListingId &&
                                      l.Market == (int)market &&
                                      l.MarketplaceId == marketplaceId).FirstOrDefault();

            var     priceChangeType = PriceChangeSourceType.None;
            decimal?oldPrice        = null;

            if (listing == null)
            {
                priceChangeType = PriceChangeSourceType.Initial;

                listing = new Listing
                {
                    ListingId            = dto.ListingId,
                    Market               = (int)market,
                    MarketplaceId        = marketplaceId,
                    SKU                  = dto.SKU,
                    ASIN                 = dto.ASIN,
                    IsFBA                = dto.IsFBA,
                    CurrentPrice         = dto.CurrentPrice,
                    CurrentPriceCurrency = dto.CurrentPriceCurrency,
                    CurrentPriceInUSD    = dto.CurrentPriceInUSD,

                    BusinessPrice = dto.BusinessPrice,

                    RealQuantity    = dto.RealQuantity,
                    DisplayQuantity = dto.DisplayQuantity,

                    RestockDate = dto.RestockDate,

                    AmazonCurrentPrice = dto.CurrentPrice,
                    AmazonRealQuantity = dto.RealQuantity,

                    LowestPrice = dto.LowestPrice,

                    OpenDate   = dto.OpenDate,
                    CreateDate = when,
                    UpdateDate = when,
                    IsRemoved  = false,

                    ItemId = item.Id,
                };

                Add(listing);
                //NOTE: Commit to get db ID for the PriceHistories
                unitOfWork.Commit();

                unitOfWork.QuantityHistories.Add(new QuantityHistory()
                {
                    ListingId       = listing.Id,
                    Type            = (int)QuantityChangeSourceType.Initial,
                    QuantityChanged = listing.RealQuantity,
                    SKU             = listing.SKU,
                    StyleString     = item.StyleString,
                    Size            = item.Size,
                    CreateDate      = when,
                    CreatedBy       = null
                });
            }
            else
            {
                //NOTE: Enter here if listing has IsRemoved flag

                if (listing.CurrentPrice != dto.CurrentPrice)
                {
                    priceChangeType = PriceChangeSourceType.Initial;
                    oldPrice        = listing.CurrentPrice;
                }

                listing.SKU           = dto.SKU;
                listing.ASIN          = dto.ASIN;
                listing.Market        = (int)market;
                listing.MarketplaceId = marketplaceId;

                listing.IsFBA = dto.IsFBA;

                listing.CurrentPrice         = dto.CurrentPrice;
                listing.CurrentPriceCurrency = dto.CurrentPriceCurrency;
                listing.CurrentPriceInUSD    = dto.CurrentPriceInUSD;

                listing.BusinessPrice = dto.BusinessPrice;

                //NOTE: Not updating auto sale price change info

                listing.RealQuantity    = dto.RealQuantity;
                listing.DisplayQuantity = dto.DisplayQuantity;

                listing.RestockDate = dto.RestockDate;

                listing.AmazonCurrentPrice = dto.CurrentPrice;
                listing.AmazonRealQuantity = dto.RealQuantity;

                listing.LowestPrice = dto.LowestPrice;

                listing.UpdateDate = when;
                listing.IsRemoved  = false;

                //Item can be changed as well
                listing.ItemId = item.Id;
            }

            unitOfWork.Commit();

            if (priceChangeType != PriceChangeSourceType.None)
            {
                unitOfWork.PriceHistories.Add(new PriceHistory
                {
                    ListingId  = listing.Id,
                    SKU        = listing.SKU,
                    Type       = (int)priceChangeType,
                    Price      = dto.CurrentPrice,
                    OldPrice   = oldPrice,
                    ChangeDate = when,
                });
                unitOfWork.Commit();
            }

            return(listing);
        }
示例#4
0
 public static IpSetSet Parse(String rule, IpTablesSystem system, int startOffset = 0)
 {
     string[] arguments = ArgumentHelper.SplitArguments(rule);
     return(Parse(arguments, system, startOffset));
 }
示例#5
0
        public MenuInfo Get(string menuId)
        {
            ArgumentHelper.AssertNotNullOrEmpty(menuId, "menuId is null or empty");

            return(MenuDao.Get(menuId));
        }
示例#6
0
 public static void AssertNotNullOrEmpty(this ICollection arg, string argName)
 {
     ArgumentHelper.AssertNotNullOrEmpty(arg, argName);
 }
示例#7
0
 public static void AssertEnumMember <TEnum>(this TEnum enumValue, string argName, params TEnum[] validValues)
     where TEnum : struct, IConvertible
 {
     ArgumentHelper.AssertEnumMember(enumValue, argName, validValues);
 }
示例#8
0
        /// <summary>
        /// 获取全部教材杂费
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public QueryResult <Bookfee> GetFeeBySchoolId(GetObjectByIdArgs args)
        {
            ArgumentHelper.Require(args.SchoolId, "SchoolId", Arguments.Positive);

            return(ContainerFactory <IBookfeeRepository> .Instance.GetFeeBySchoolId(args));
        }
 public override bool CanHandle(
     ParameterInfo parameter,
     Type sourceType) =>
 ArgumentHelper.IsOutputField(parameter);
 public void assert_generic_argument_not_null_does_not_throw_if_reference_is_not_null()
 {
     ArgumentHelper.AssertGenericArgumentNotNull("test", "test");
 }
示例#11
0
 public override bool CanHandle(
     ParameterInfo parameter,
     Type sourceType) =>
 ArgumentHelper.IsEventMessage(parameter);
 public void assert_generic_argument_not_null_throws_if_interface_is_null()
 {
     Assert.Throws <ArgumentNullException>(() => ArgumentHelper.AssertGenericArgumentNotNull <IComparable>(null, "test"));
 }
 public void assert_generic_argument_not_null_throws_if_reference_is_null()
 {
     Assert.Throws <ArgumentNullException>(() => ArgumentHelper.AssertGenericArgumentNotNull <string>(null, "test"));
 }
 public void assert_not_null_throws_if_nullable_has_no_value()
 {
     Assert.Throws <ArgumentNullException>(() => ArgumentHelper.AssertNotNull((int?)null, "test"));
 }
 public void assert_not_null_does_not_throw_if_nullable_has_a_value()
 {
     ArgumentHelper.AssertNotNull((int?)1, "test");
 }
示例#16
0
        public ParentItem CreateOrUpdateParent(ParentItemDTO dto,
                                               MarketType market,
                                               string marketplaceId,
                                               DateTime?when)
        {
            if (!ArgumentHelper.CheckMarket(market))
            {
                throw new ArgumentNullException("market");
            }
            if (!ArgumentHelper.CheckMarketplaceId(market, marketplaceId))
            {
                throw new ArgumentNullException("marketplaceId");
            }

            var parentItem = unitOfWork.GetSet <ParentItem>().FirstOrDefault(i =>
                                                                             i.ASIN == dto.ASIN &&
                                                                             i.Market == (int)market &&
                                                                             i.MarketplaceId == marketplaceId);

            if (parentItem == null)
            {
                parentItem = new ParentItem
                {
                    ASIN           = dto.ASIN,
                    Market         = (int)market,
                    MarketplaceId  = marketplaceId,
                    SourceMarketId = dto.ASIN,

                    AmazonName  = dto.AmazonName,
                    SKU         = dto.SKU,
                    ImageSource = dto.ImageSource,

                    Rank           = dto.Rank,
                    RankUpdateDate = when,

                    //Additional fields
                    BrandName        = dto.BrandName,
                    Type             = dto.Type,
                    ListPrice        = dto.ListPrice,
                    Color            = dto.Color,
                    Department       = dto.Department,
                    Features         = dto.Features,
                    AdditionalImages = dto.AdditionalImages,
                    SearchKeywords   = dto.SearchKeywords,

                    //System
                    CreateDate           = when,
                    IsAmazonUpdated      = dto.IsAmazonUpdated,
                    LastUpdateFromAmazon = dto.LastUpdateFromAmazon
                };
                Add(parentItem);
            }
            else
            {
                UpdateParentItemInfo(parentItem, dto, when);
            }

            unitOfWork.Commit();

            return(parentItem);
        }
示例#17
0
 public static void AssertNotNullOrEmpty(this IEnumerable arg, string argName)
 {
     ArgumentHelper.AssertNotNullOrEmpty(arg, argName);
 }
示例#18
0
 public PdfArgumentResolver() : base(ArgumentHelper.GetPdfArguments())
 {
 }
示例#19
0
 public static void AssertNotNullOrWhiteSpace(this string arg, string argName)
 {
     ArgumentHelper.AssertNotNullOrWhiteSpace(arg, argName);
 }
 public override bool CanHandle(
     ParameterInfo parameter,
     Type sourceType) =>
 ArgumentHelper.IsDataLoader(parameter);
        public EmployeeController(IMediator mediator)
        {
            ArgumentHelper.EnsureNotNull(nameof(mediator), mediator);

            _mediator = mediator;
        }
示例#22
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <JWTSettings>(_configuration.GetSection(nameof(JWTSettings)));
            services.Configure <DiscordSettings>(_configuration.GetSection(nameof(DiscordSettings)));
            services.Configure <DatabaseSettings>(_configuration.GetSection(nameof(DatabaseSettings)));

            services.AddSingleton <IJWTSettings>(ii => ii.GetRequiredService <IOptions <JWTSettings> >().Value);
            services.AddSingleton <IDiscordSettings>(ii => ii.GetRequiredService <IOptions <DiscordSettings> >().Value);
            services.AddSingleton <IDatabaseSettings>(ii => ii.GetRequiredService <IOptions <DatabaseSettings> >().Value);

            services.AddSingleton <HttpClient>();
            services.AddSingleton <DiscordService>();

            services.AddHttpContextAccessor();
            services.AddSingleton(_hostingEnvironment);
            services.AddDbContext <CampaignSaberContext>();

            // Number of elements per page
            int pec = 10;

            var schema = SchemaBuilder.FromObject <CampaignSaberContext>();

            schema.ReplaceField(
                "users",
                new { },
                (db, param) => db.Users.FirstOrDefault(), "");
            schema.ReplaceField(
                "campaigns",
                new
            {
                page = (int?)null
            },
                (db, param) => db.Campaigns.Skip(param.page.GetValueOrDefault() * pec).Take(pec), "Get a page of campaigns");

            schema.AddField(
                "campaignsFromUser",
                new
            {
                userId = ArgumentHelper.Required <string>(),
                page   = (int?)null
            },
                (db, param) => db.Campaigns.Where(c => c.UploaderId == param.userId.Value).Skip(param.page.GetValueOrDefault() * pec).Take(pec), "Get a page of campaigns made by a user");

            schema.AddField(
                "campaignsWithMap",
                new
            {
                mapKey = ArgumentHelper.Required <string>(),
                page   = (int?)null
            },
                (db, param) => db.Campaigns.Where(c => c.Metadata.Challenges.Any(cm => cm.SongID.ToLower() == param.mapKey.Value.ToLower())).Skip(param.page.GetValueOrDefault() * pec).Take(pec), "Gets a page of campaigns that contain a specific beatmap");

            schema.AddMutationFrom(new CampaignMutations());
            services.AddSingleton(schema);

            services.AddCors(options =>
            {
                options.AddDefaultPolicy(opt =>
                {
                    opt.AllowAnyOrigin()
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });
            });

            services.AddControllers().AddNewtonsoftJson();
        }
示例#23
0
        public List <MenuInfo> GetList(int tenantId)
        {
            ArgumentHelper.AssertIsTrue(tenantId > 0, "tenantId is 0");

            return(MenuDao.GetList(tenantId));
        }
    public bool SynUser(string customerID, int typeID, string userInfo)
    {
        this.log(LogLevel.DEBUG, FunctionName.WS_SYN_USER, MessageType.PARAMATER, "customerID: " + customerID);
        this.log(LogLevel.DEBUG, FunctionName.WS_SYN_USER, MessageType.PARAMATER, "typeID: " + typeID.ToString());
        this.log(LogLevel.DEBUG, FunctionName.WS_SYN_USER, MessageType.PARAMATER, "userInfo: " + userInfo);

        //验证参数
        bool ret = ArgumentHelper.Validate("customerID", customerID, false);

        if (!ret)
        {
            this.log(LogLevel.ERROR, FunctionName.WS_SYN_USER, "customerID", "参数不正确");
            this.log(LogLevel.INFO, FunctionName.WS_SYN_USER, MessageType.RESULT, ret.ToString());
            return(ret);
        }

        //获取连接
        CustomerConnectInfo cConnect = this.GetCustomerService().GetCustomerConnectByID(customerID);

        if (cConnect == null)
        {
            this.log(LogLevel.ERROR, FunctionName.WS_SYN_USER, "CustomerConnect", "未找到");
            this.log(LogLevel.INFO, FunctionName.WS_SYN_USER, MessageType.RESULT, "false");
            return(false);
        }

        if (typeID < 1 || typeID > 5)
        {
            this.log(LogLevel.ERROR, FunctionName.WS_SYN_USER, "typeID", "参数不正确");
            this.log(LogLevel.INFO, FunctionName.WS_SYN_USER, MessageType.RESULT, "false");
            return(false);
        }

        //解密
        cPos.Admin.Service.BaseService base_service = this.GetCustomerService() as cPos.Admin.Service.BaseService;
        string s = base_service.DecryptStringByCustomer(customerID, userInfo);

        this.log(LogLevel.DEBUG, FunctionName.WS_SYN_USER, "DecryptCustomerUser", s);

        CustomerUserInfo user = (CustomerUserInfo)XMLGenerator.Deserialize(typeof(CustomerUserInfo), s);

        user.Customer.ID = customerID;
        switch (typeID)
        {
        case 1:    //新建
            ret = this.GetCustomerService().InsertCustomerUserFromCP(user);
            break;

        case 2:    //修改
            ret = this.GetCustomerService().ModifyCustomerUserFromCP(user);
            break;

        case 3:    //启用
            ret = this.GetCustomerService().EnableCustomerUserFromCP(user);
            break;

        case 4:    //停用
            ret = this.GetCustomerService().DisableCustomerUserFromCP(user);
            break;

        case 5:    //修改密码
            ret = this.GetCustomerService().ModifyCustomerUserPasswordFromCP(user);
            break;

        default:
            ret = false;
            break;
        }
        this.log(LogLevel.INFO, FunctionName.WS_SYN_USER, MessageType.RESULT, ret.ToString());
        return(ret);
    }
示例#25
0
 protected virtual void BeforeBuild(ModelBuilder modelBuilder)
 {
     ArgumentHelper.ThrowIfNullOrEmpty(EntitySchema, nameof(EntitySchema), "No schema provided");
     modelBuilder.HasDefaultSchema(EntitySchema);
 }
示例#26
0
 public static void AssertNotNull <T>(this T?arg, string argName)
     where T : struct
 {
     ArgumentHelper.AssertNotNull(arg, argName);
 }
示例#27
0
        static int Main(string[] args)
        {
            // hacer load, reload, probar el global con payload, hacer el listen general con un handler, no cargar exploits sin el load
#if DEBUG
            if (Debugger.IsAttached)
            {
                args = new string[] { @"Play=Debug.txt" }
            }
            ;
#endif

            // Linq to library assembly
            BuildLink.Dummy();

            // Configure
            //Console.InputEncoding = Encoding.UTF8;
            //Console.OutputEncoding = Encoding.UTF8;
            using (CommandLayer command = new CommandLayer(new ConsoleIO()))
            {
                command.SetBackgroundColor(ConsoleColor.White);
                command.SetBackgroundColor(ConsoleColor.Black);

                command.AddInput("banner");

                // TODO: Fix \"CryptKey=#Crypt0 M3#\" -> broken line whith white space
                // \"CryptKey=#Crypt0M3#\"
                Config cfg = ArgumentHelper.Parse <Config>(args);// ("\"Replay=d:\\temp\\console.txt\" \"Listen={Port=23 CryptKey=#Test# IPFilter={OnlyAllowed=127.0.0.1,172.22.32.51}}\" \"User={UserName=root Password=toor}\"");

                // Run file
                if (!string.IsNullOrEmpty(cfg.Play))
                {
                    try
                    {
                        command.SetForeColor(ConsoleColor.Gray);
                        command.Write(Lang.Get("Reading_File", cfg.Play));

                        foreach (string line in File.ReadAllLines(cfg.Play, Encoding.UTF8))
                        {
                            string ap = line.Trim();
                            if (string.IsNullOrEmpty(ap) || ap.StartsWith("#") || ap.StartsWith("//"))
                            {
                                continue;
                            }
                            command.AddInput(ap);
                        }

                        command.SetForeColor(ConsoleColor.Green);
                        command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                    }
                    catch
                    {
                        command.SetForeColor(ConsoleColor.Red);
                        command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                    }
                }

                if (cfg.Connect != null)
                {
                    // Connect to server
                    SocketListener client = new SocketListener(cfg.Connect);

                    command.SetForeColor(ConsoleColor.Gray);
                    command.Write(Lang.Get("Connecting_To", client.ToString()));
                    if (client.Start())
                    {
                        command.SetForeColor(ConsoleColor.Green);
                        command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                    }
                    else
                    {
                        command.SetForeColor(ConsoleColor.Red);
                        command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                    }

                    command.SetForeColor(ConsoleColor.DarkGray);
                    command.WriteLine(Lang.Get("Press_Any_Key"));

                    Console.ReadKey();
                }
                else
                {
                    List <IListener> listeners = new List <IListener>();

                    // Launch socket listener
                    if (cfg.Listen != null)
                    {
                        listeners.Add(new SocketListener(cfg.Listen));
                    }

                    // Run listeners
                    foreach (IListener listener in listeners)
                    {
                        command.SetForeColor(ConsoleColor.Gray);
                        command.Write(Lang.Get("Starting_Listener", listener.ToString()));

                        if (listener.Start())
                        {
                            command.SetForeColor(ConsoleColor.Green);
                            command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                        }
                        else
                        {
                            command.SetForeColor(ConsoleColor.Red);
                            command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                        }
                    }

                    // Console listener
                    CommandListener cmd = new CommandListener(command);
                    cmd.Start();
                }
            }

            // Wait exit signal
            JobCollection.Current.KillAll();
            return(0);
        }
    }
示例#28
0
 public static void AssertGenericArgumentNotNull <T>(this T arg, string argName)
 {
     ArgumentHelper.AssertGenericArgumentNotNull(arg, argName);
 }
示例#29
0
        public bool FillOrderItemsBySKUOrBarcode(IList <ListingOrderDTO> orderItems,
                                                 MarketType market,
                                                 string marketplaceId)
        {
            if (!ArgumentHelper.CheckMarket(market))
            {
                throw new ArgumentNullException("market");
            }
            if (!ArgumentHelper.CheckMarketplaceId(market, marketplaceId))
            {
                throw new ArgumentNullException("marketplaceId");
            }

            var result = true;

            foreach (var dto in orderItems)
            {
                var query = from vl in unitOfWork.GetSet <ViewListing>()
                            join i in unitOfWork.GetSet <Item>() on vl.ItemId equals i.Id
                            where vl.SKU == dto.SKU &&
                            vl.Market == (int)market &&
                            vl.StyleId != null &&
                            vl.StyleItemId != null
                            select new { vl, i };

                var view = query.ToList();

                //NOTE: Try by barcode
                if (view.Count == 0)
                {
                    view = (from vl in unitOfWork.GetSet <ViewListing>()
                            join i in unitOfWork.GetSet <Item>() on vl.ItemId equals i.Id
                            where i.Barcode == dto.Barcode &&
                            vl.Market == (int)market &&
                            vl.StyleId != null &&
                            vl.StyleItemId != null
                            select new { vl, i }).ToList();
                }

                //NOTE: Enable filtering by marketplace (only when we have there listings
                if (view.Count(v => v.i.MarketplaceId == marketplaceId) > 0)
                {
                    view = view.Where(v => v.i.MarketplaceId == marketplaceId).ToList();
                }

                var listing = view.FirstOrDefault();

                if (market == MarketType.Amazon || market == MarketType.AmazonEU || market == MarketType.AmazonAU)
                {
                    var listingsList = view.Where(l => l.vl.MarketplaceId == marketplaceId &&
                                                  !l.vl.IsRemoved).OrderBy(l => l.vl.CreateDate).ToList();

                    if (listingsList.Count > 0)
                    {
                        listing = listingsList.FirstOrDefault(l => l.vl.Quantity > 0);
                        if (listing == null)
                        {
                            listing = listingsList.LastOrDefault();
                        }
                    }

                    if (listing == null)
                    {
                        listing = view.FirstOrDefault(l => l.vl.MarketplaceId == marketplaceId); //Include removed
                    }
                    if (listing == null && market == MarketType.AmazonEU)
                    {
                        listing = view.FirstOrDefault(); //Ignore marketplaceId, temporary enable for EU
                    }
                }
                else
                {
                    //For other market
                    listing = view.FirstOrDefault();
                }

                if (listing != null &&
                    listing.vl.StyleItemId.HasValue)    //NOTE: only if listing has linked styleItemId, otherwise we skipped that listing!!! No needed listing w/o style item
                {
                    dto.Id            = listing.vl.Id;
                    dto.SKU           = listing.vl.SKU;
                    dto.ListingId     = listing.vl.ListingId;
                    dto.DropShipperId = listing.vl.DropShipperId;

                    dto.Weight               = listing.vl.Weight;
                    dto.ShippingSize         = listing.vl.ShippingSize;
                    dto.PackageLength        = listing.vl.PackageLength;
                    dto.PackageWidth         = listing.vl.PackageWidth;
                    dto.PackageHeight        = listing.vl.PackageHeight;
                    dto.InternationalPackage = listing.vl.InternationalPackage;
                    dto.ItemStyle            = listing.vl.ItemStyle;
                    dto.RestockDate          = listing.vl.RestockDate;
                    dto.Size       = listing.vl.Size;
                    dto.ParentASIN = listing.vl.ParentASIN;
                    dto.Picture    = listing.vl.Picture;

                    dto.StyleItemId = listing.vl.StyleItemId;
                    dto.StyleId     = listing.vl.StyleId;
                    dto.StyleID     = listing.vl.StyleString;
                    dto.StyleSize   = listing.vl.StyleSize;
                    dto.StyleColor  = listing.vl.StyleColor;

                    dto.RealQuantity         = listing.vl.Quantity;
                    dto.OnMarketTemplateName = listing.i.OnMarketTemplateName;
                }
                else
                {
                    result = false;
                }
            }
            return(result);
        }
示例#30
0
 public static void AssertNotNull <T>(this IEnumerable <T> arg, string argName, bool assertContentsNotNull)
 {
     ArgumentHelper.AssertNotNull(arg, argName, assertContentsNotNull);
 }
示例#31
0
        private void OutputHelpMessage()
        {
            var sortedOptions = new ArgumentHelper[Arguments.Count];
            Arguments.CopyTo(sortedOptions);
            Array.Sort(sortedOptions, (a, b) => string.CompareOrdinal(a.MatchString, b.MatchString));

            DeploymentWorker.OutputMessage("");
            DeploymentWorker.OutputMessage(string.Format(CultureInfo.InvariantCulture, "  {0} -s (source) -n (target):", "IotCoreAppDeployment.exe"));
            DeploymentWorker.OutputMessage("");
            DeploymentWorker.OutputMessage(Resource.CommandLineParser_RequiredArgWithInput);
            foreach (var option in sortedOptions)
            {
                OutputHelpMessage(option, true, true);
            }
            DeploymentWorker.OutputMessage("");
            DeploymentWorker.OutputMessage(Resource.CommandLineParser_OptionalArgWithInput);
            foreach (var option in sortedOptions)
            {
                OutputHelpMessage(option, false, true);
            }
            DeploymentWorker.OutputMessage("");
            DeploymentWorker.OutputMessage(Resource.CommandLineParser_OptionalArgNoInput);
            foreach (var option in sortedOptions)
            {
                OutputHelpMessage(option, false, false);
            }
            DeploymentWorker.OutputMessage("");
        }
        public void assert_enum_member_if_valid_values_are_provided_but_the_enumeration_value_is_not_a_valid_enumeration_value()
        {
            var ex = Assert.Throws <ArgumentException>(() => ArgumentHelper.AssertEnumMember((DayOfWeek)69, "test", DayOfWeek.Friday, DayOfWeek.Sunday));

            Assert.Equal(string.Format(CultureInfo.InvariantCulture, "Enum value '69' is not defined for enumeration 'System.DayOfWeek'.{0}Parameter name: test", Environment.NewLine), ex.Message);
        }