//private static readonly Lazy<ICatalogueItemQDAL> _lazyCatalogueItemQDAL = ObjectContainer.LazyResolve<ICatalogueItemQDAL>(); //private ICatalogueItemQDAL CatalogueItemQDAL => _lazyCatalogueItemQDAL.Value; //private static readonly Lazy<IProductFamilyQDAL> _lazyProductFamilyQDAL = ObjectContainer.LazyResolve<IProductFamilyQDAL>(); //private IProductFamilyQDAL ProductFamilyQDAL => _lazyProductFamilyQDAL.Value; #endregion // ******************************************************************************************************************************* #region - RefreshProductFamilyAsync - public async Task <string> RefreshProductFamilyAsync(RefreshProductFamilyCommand cmd) { if (cmd.RefreshChangesOnly) { var changedFamilyIds = cmd.FamilyIDs .Select(async id => { var family = await ProductFamilyMDAL.GetFamilyWithItemsAsync(id).ConfigureAwait(false); if (family.IsNotNull() && family.Items.IsPresent()) { if (family.Flags.HasAnyFlag(ProductFlagsEnum.HasChanges)) { return(family.ID); } } return(null); }) .Select(x => x.Result) .Where(x => x.IsNotNull()) .ToList(); if (!changedFamilyIds.IsPresent()) { return(MsgCodes.DATA_NOT_FOUND_QUERYDB); } // ^^^^^^^^^^ cmd.FamilyIDs = changedFamilyIds; } // Run Transactions IList <string> msgCodes = new List <string>(); foreach (var item in cmd.FamilyIDs) { var tran = new RefreshTransaction(new RefreshProductFamilyCommand { FamilyID = item }); await tran.RunAsync().ConfigureAwait(false); msgCodes.Add(tran.IsSuccess ? MsgCodes.SUCCESS : string.Join("\n", tran.ReadLogs())); } return(string.Join(",", msgCodes)); }
// ******************************************************************************************************************************* #region - Constructor(s) - public RefreshTransaction(RefreshProductFamilyCommand command) : base(command.CorrelationId) { Context.Set("FamilyID", command.FamilyID); }
public async Task <string> RefreshAllAsync(RefreshProductFamilyCommand cmd) { return(await SendAsync(cmd).ConfigureAwait(false)); }