private static void UpdatePersonTableItemViewModels(this List <PersonTableItemViewModel> personTableItemViewModels, IGrouping <Guid, MatchEvent> matchEventGroup, DateTime viewDate) { var personViewModel = matchEventGroup.FirstOrDefault().Person.ToViewModel(viewDate); var query = from p in personTableItemViewModels where p.PersonViewModel.PrimaryKey == personViewModel.PrimaryKey select p; if (!query.Any()) { personTableItemViewModels.Add(new PersonTableItemViewModel() { PersonViewModel = matchEventGroup.FirstOrDefault().Person.ToViewModel(viewDate), Started = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Started), BroughtOn = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.BroughtOn), Goals = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Scored), OwnGoals = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.OwnGoal), Booked = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Booked), SentOff = matchEventGroup.Count(g => g.MatchEventType == MatchEventType.SentOff), }); } else { var personTableItemViewModel = query.Single(); personTableItemViewModel.Started += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Started); personTableItemViewModel.BroughtOn += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.BroughtOn); personTableItemViewModel.Goals += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Scored); personTableItemViewModel.OwnGoals += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.OwnGoal); personTableItemViewModel.Booked += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.Booked); personTableItemViewModel.SentOff += matchEventGroup.Count(g => g.MatchEventType == MatchEventType.SentOff); } }
private static BelStockArchiveLine ToBelStockArchiveDate(IGrouping <DateTime, BelStockArchiveOneCurrencyDay> day) { var belStockDay = new BelStockArchiveLine() { Date = day.Key, Timestamp = $"{day.Key:dd.MM.yyyy}" }; var usd = day.FirstOrDefault(l => l.Currency == Currency.Usd); if (usd == null) { return(belStockDay); } belStockDay.UsdTurnover = usd.TurnoverInCurrency; belStockDay.UsdRate = usd.TurnoverInByn / usd.TurnoverInCurrency; var euro = day.FirstOrDefault(l => l.Currency == Currency.Eur); belStockDay.EuroTurnover = euro?.TurnoverInByn / belStockDay.UsdRate ?? 0; belStockDay.EuroRate = euro?.TurnoverInByn / euro?.TurnoverInCurrency ?? 0; var rub = day.FirstOrDefault(l => l.Currency == Currency.Rub); belStockDay.RubTurnover = rub?.TurnoverInByn / belStockDay.UsdRate ?? 0; belStockDay.RubRate = rub?.TurnoverInByn / rub?.TurnoverInCurrency * 100 ?? 0; return(belStockDay); }
//public OnStockProductViewModel(Product product): base(product) //{ // var orderedTransactions = product.Transactions.OrderBy(x => x.Date); // var transactionBought = orderedTransactions.LastOrDefault(x => x.TypeID == (int) TranType.Bought); // if (transactionBought != null) // { // DateBought = transactionBought.Date; // SalesmanBought = new SalesmanViewModel(transactionBought.Operator.Salesman); // } // var lastTransaction = orderedTransactions.LastOrDefault(); // if (lastTransaction != null) // { // LastTransactionDate = lastTransaction.Date; // } //} public OnStockProductViewModel(IGrouping <ModelSerialNumberStatusPriceBoughtGroup, Product> products) : base(products.FirstOrDefault()) { IDs = products.Select(x => x.ID).ToList(); Product firstProduct = products.FirstOrDefault(); if (firstProduct == null) { return; } var orderedTransactions = firstProduct.Transactions.OrderBy(x => x.Date); var transactionBought = orderedTransactions.LastOrDefault(x => x.TypeID == (int)TranType.Bought); if (transactionBought != null) { DateBought = transactionBought.Date; SalesmanBought = new SalesmanViewModel(transactionBought.Operator.Salesman); } var lastTransaction = orderedTransactions.LastOrDefault(); if (lastTransaction != null) { LastTransactionDate = lastTransaction.Date; } }
private CierreCajaIndexViewModel ArmarIndexCierre(IGrouping <DateTime, CierreCaja> c) { CierreCajaIndexViewModel cVM = new CierreCajaIndexViewModel(); try { cVM.CierreCajaID = c.Where(a => a.Turno.Nombre == "Mañana").FirstOrDefault().Id; } catch { cVM.CierreCajaID = 0; } try { if (cVM.CierreCajaID == 0) { cVM.CierreCajaID = c.Where(a => a.Turno.Nombre == "Tarde").FirstOrDefault().Id; } } catch { } try { cVM.TotalMañana = c.Where(a => a.Turno.Nombre == "Mañana").FirstOrDefault().TotalCaja; } catch { cVM.TotalMañana = 0; } try { cVM.TotalTarde = c.Where(a => a.Turno.Nombre == "Tarde").FirstOrDefault().TotalCaja; } catch { cVM.TotalTarde = 0; } try { cVM.FechaCierre = c.FirstOrDefault().FechaCierreCaja; } catch { cVM.FechaCierre = new DateTime(1900, 1, 1); } try { cVM.Sucursal = c.FirstOrDefault().Sucursal.Nombre; } catch { cVM.Sucursal = "Sin Sucursal"; } try { cVM.Usuario = c.FirstOrDefault().Usuario.NombreCompleto; } catch { cVM.Usuario = "Sin Usuario"; } return(cVM); }
private TimeSpan GetTimeProcess(IGrouping <string, Line> group) { var sendedMessage = group.FirstOrDefault(sm => !sm.IsProcessed).TimeProcess; var processedMessage = group.FirstOrDefault(sm => sm.IsProcessed).TimeProcess; return(processedMessage.Subtract(sendedMessage)); }
private Order OrdersByUser(IGrouping <long, Order> group) { return(new Order { Id = group.FirstOrDefault()?.Id ?? default, User = group.FirstOrDefault().User, Items = group.Select(g => g.Items.First()).ToList() });
private JobStatusLog GetJobStatusLog(IGrouping <Guid, JobStatusLog> dayAssignStatuses, bool showLastCompletedOrCanceledStatus) { if (showLastCompletedOrCanceledStatus) { return(dayAssignStatuses.FirstOrDefault(x => x.StatusId == JobStatus.Completed || x.StatusId == JobStatus.Canceled)); } return(dayAssignStatuses.FirstOrDefault()); }
public ActionResult ChangeReturnPoint(int arg, int group, int?value, int type) { var list = DB.DeliveryLists.FirstOrDefault(x => x.ID == group); if (list != null) { IGrouping <int?, DeliveryListOrder> gr = null; if (type == (int)SectorTypes.CarSector) { gr = list.DeliveryListOrders.GroupBy(x => x.CarID).FirstOrDefault(x => x.Key == arg); } if (type == (int)SectorTypes.CourierSector) { gr = list.DeliveryListOrders.GroupBy(x => x.WorkerID).FirstOrDefault(x => x.Key == arg); } if (value.HasValue) { var rp = gr.FirstOrDefault(x => x.ReturnPoint); if (rp != null) { rp.StoreID = value.Value; } else { var max = gr.Max(x => x.OrderNum); rp = new DeliveryListOrder() { StoreID = value.Value, Type = type, ReturnPoint = true, OrderNum = max + 1, ListID = list.ID }; if (type == (int)SectorTypes.CarSector) { rp.CarID = arg; } if (type == (int)SectorTypes.CourierSector) { rp.WorkerID = arg; } DB.DeliveryListOrders.InsertOnSubmit(rp); } } else { var rp = gr.FirstOrDefault(x => x.ReturnPoint); if (rp != null) { DB.DeliveryListOrders.DeleteOnSubmit(rp); } } DB.SubmitChanges(); } return(new ContentResult()); }
public static ExportObjectDTO FromData(IGrouping <string, Book> books) { return(new ExportObjectDTO() { Author = books.FirstOrDefault().Author.Name, Name = books.FirstOrDefault().Name, BorrowCount = books.Sum(book => book.BorrowCount), ReserveCount = books.Sum(book => book.ReserveCount) }); }
private static BundleWithHeader <T> FindContentItem <T>(IGrouping <string, BundleWithHeader <T> > bundle) { var primaryItem = bundle.FirstOrDefault(e => string.Equals(e.Header.Group.Part, ViewParts.Content, OrdinalIgnoreCase)) ?? bundle.FirstOrDefault(e => string.Equals(e.Header.Group.Part, ViewParts.ListContent, OrdinalIgnoreCase)); if (primaryItem == null) { throw new Exception("unexpected group-entity assignment, cannot figure it out"); } return(primaryItem); }
public bool GetConditionForAnswersRightToWrongToRight(IGrouping <string, Snapshot> snapsForEachItem, string correctAnswer, string lastAnswer) { var isLastAnswerRight = lastAnswer == correctAnswer; var firstAnswer = snapsForEachItem.FirstOrDefault(x => !string.IsNullOrEmpty(x.Response)); if (firstAnswer != null) { var isFirstAnswerRight = firstAnswer.Response == correctAnswer; var isLastAndFirstAnswersCorrect = isFirstAnswerRight && isLastAnswerRight; var isThereWrongAnswer = snapsForEachItem.FirstOrDefault(z => z.Response != string.Empty && z.Response != correctAnswer) != null; return(isLastAndFirstAnswersCorrect && isThereWrongAnswer); } return(false); }
/// <summary> /// Creates a consolidated pricing term from a regularly formatted pricing term /// that comes directly from the price list api. Used when you've grouped the price list by /// SKU which gives pricing terms for all on demand and reserved terms in the group. This /// will identify the on demand term and then construct the reserved terms. /// </summary> /// <param name="commonSkus"></param> /// <param name="product"></param> /// <returns></returns> public static IEnumerable <ReservedInstancePricingTerm> Build(IGrouping <string, PricingTerm> commonSkus, Product product) { if (commonSkus == null) { throw new ArgumentNullException("commonSkus"); } if (product == null) { throw new ArgumentNullException("product"); } PricingTerm onDemand = commonSkus.FirstOrDefault(x => x.TermAttributes.PurchaseOption == PurchaseOption.ON_DEMAND); if (onDemand == null) { throw new KeyNotFoundException($"{product.ProductFamily} - An on demand price data term was not found for sku: {commonSkus.Key}."); } IEnumerable <PricingTerm> reservedTerms = commonSkus.Where(x => x.TermAttributes.PurchaseOption != PurchaseOption.ON_DEMAND); if (!reservedTerms.Any()) { return(Enumerable.Empty <ReservedInstancePricingTerm>()); } return(Build(product, onDemand, reservedTerms)); }
/// <summary> /// Создание строки вывода имен авторов в формате UA/RU/EN /// </summary> public static string ToFilterName(this IGrouping <string, Author> authors) { var sb = new StringBuilder(authors.Key); var authorRu = authors.FirstOrDefault(a => a.NameRu != null); var authorEn = authors.FirstOrDefault(a => a.NameEn != null); if (authorRu != null) { sb.AppendFormat("/{0}", authorRu.NameRu); } if (authorEn != null) { sb.AppendFormat("/{0}", authorEn.NameEn); } return(sb.ToString()); }
/// <summary> /// Gets the action descriptor of the specified action /// </summary> /// <param name="actionName">The name of the action</param> /// <returns>The <see cref="IWebApiActionDescriptor"/> if it exists, otherwise null</returns> public IWebApiActionDescriptor GetActionDescriptor(string actionName) { IGrouping <string, HttpActionDescriptor> group = this.innerMap.FirstOrDefault(g => g.Key == actionName); HttpActionDescriptor descriptor = group?.FirstOrDefault(); return(descriptor == null ? null : new WebApiActionDescriptor(descriptor)); }
private string GetCompositePublicIp(IGrouping <string, HubClientSession> grp) { var real = grp.FirstOrDefault(_ => !(_.CurrentState?.PublicIP?.IsBlank() ?? true)); return(grp.Key + ((real == null) ? "" : $" (global: {real.CurrentState.PublicIP})")); }
private async Task <InkCard> GetInkCard(Guid cardCollectionId, IGrouping <Guid, CardFile> x) { var frontFile = x.FirstOrDefault(y => y.IsFront)?.File; var backFile = x.FirstOrDefault(y => !y.IsFront)?.File; return(new InkCard { CardCollectionId = cardCollectionId, CardId = x.Key, CardFrontInk = await frontFile.OpenReadAsync(), CardBackInk = await backFile.OpenReadAsync(), CardFrontUri = new Uri(frontFile.Path, UriKind.Absolute), CardBackUri = new Uri(backFile.Path, UriKind.Absolute), Created = frontFile.DateCreated.DateTime }); }
private static ComponentDefinition CreateComponentDefinition(IGrouping <string, FileTemplateInfo> t) { var componentId = GetComponentId(t.Key); var defaultTemplateCandidates = GetDefaultTemplateCandidates(componentId); FileTemplateInfo defaultTemplate = null; foreach (var defaultTemplateCandidate in defaultTemplateCandidates) { defaultTemplate = t.FirstOrDefault(a => a.Path.ToString().EndsWith(defaultTemplateCandidate, StringComparison.InvariantCultureIgnoreCase)); if (defaultTemplate != null) { break; } } var templates = t.ToList(); if (defaultTemplate == null && templates.Count == 1) { defaultTemplate = templates[0]; } var skins = templates.Where(t1 => t1 != defaultTemplate).ToDictionary(GetSkinName); if (defaultTemplate == null && skins.TryGetValue(string.Empty, out defaultTemplate)) { skins.Remove(string.Empty); } return(new ComponentDefinition(componentId, defaultTemplate, skins)); }
private static ICollection <string> TableDesToList(IGrouping <string, MsSQLTableDes> data) { List <string> returnLs = new List <string>(); returnLs.Add($"using System; "); returnLs.Add($"using System.Collections.Generic;"); returnLs.Add($"using System.ComponentModel.DataAnnotations;"); returnLs.Add($"using System.ComponentModel.DataAnnotations.Schema;"); returnLs.Add(string.Empty); returnLs.Add($"namespace {NameSpace}"); returnLs.Add("{"); returnLs.Add($"public class {data.FirstOrDefault().Table}"); returnLs.Add("{"); foreach (var t in data) { var isNullable = ConvertTypeMSSQL(t.DATA_TYPE) != "string" ? t.Isnull == "NO" ? "" : "?" : ""; AddSummary(returnLs, t); AddColumn(returnLs, t); AddMaxLength(returnLs, t); AddKey(returnLs, t); returnLs.Add($" public {ConvertTypeMSSQL(t.DATA_TYPE)}{isNullable} {t.Column}" + " { get; set; }"); returnLs.Add(string.Empty); } returnLs.Add("}"); returnLs.Add("}"); return(returnLs); }
public bool GetConditionForAnswersRightToWrong(IGrouping <string, Snapshot> snapsForEachItem, string correctAnswer, string lastAnswer) { var isLastAnswerWrong = lastAnswer != correctAnswer; var isThereCorrectAnswer = snapsForEachItem.FirstOrDefault(z => z.Response == correctAnswer) != null; return(isLastAnswerWrong && isThereCorrectAnswer); }
public bool GetConditionForAnswersWrongToWrong(IGrouping <string, Snapshot> snapsForEachItem, string correctAnswer, string lastAnswer) { var isLastAnswerWrong = lastAnswer != correctAnswer; var isThereWrongAnswer = snapsForEachItem.FirstOrDefault(z => z.Response != string.Empty && z.Response != correctAnswer && z.Response != lastAnswer) != null; return(isThereWrongAnswer && isLastAnswerWrong); }
private IEnumerable <string[]> GetDescription_UF_CUTTER_TYPE_THREAD(IGrouping <Tag, NxOperation> operations) { var list = new List <string[]>(); var operation = operations.FirstOrDefault(); var str = string.Empty; if (operation == null) { return(list); } List <string> descriptionMap = toolMap[operation.CUTTER_TAG]; // достаём из мапы по ключу значение и записываем его в лист var s = string.Format("Угол профиля={0:F2}<$s>", RadiansToDegrees(operation.UF_PARAM_TL_LEFT_ANG)); list.Add(new[] { "Т", "-", operation.ToolNumber, operation.UF_PARAM_TL_DESCRIPTION, s, string.Empty, string.Empty }); s = operation.UF_PARAM_TL_INSERT_POSITION == 1 ? "Позиция вставки - верхняя сторона" : "Позиция вставки - нижняя сторона"; str = operation.UF_PARAM_TL_MaxReach != -1 ? string.Format("Максимальная глубина {0}мм", operation.UF_PARAM_TL_MaxReach) : string.Empty; list.Add(new[] { string.Empty, "-", string.Empty, s, str, string.Empty, string.Empty }); //------------------------------ s = operation.UF_PARAM_TL_FlipToolAroundHolder == false ? "Стандартный" : "Обратный"; list.Add(new[] { string.Empty, "-", string.Empty, s, string.Empty, string.Empty, string.Empty }); //------------------------------ return(list); }
private static Feature CollectNewColumnValues(IGrouping <string, Feature> groupFeature, Dictionary <string, string> newColumnValues, OperatorPair operatorPair) { Feature feature = new Feature(); switch (operatorPair.Operator) { case DissolveOperatorMode.First: feature = groupFeature.FirstOrDefault(); if (feature.GetShape() != null) { newColumnValues.Add(operatorPair.ColumnName, feature.ColumnValues[operatorPair.ColumnName]); } break; case DissolveOperatorMode.Last: feature = groupFeature.LastOrDefault(); if (feature.GetShape() != null) { newColumnValues.Add(operatorPair.ColumnName, feature.ColumnValues[operatorPair.ColumnName]); } break; case DissolveOperatorMode.Count: newColumnValues.Add(operatorPair.ColumnName, groupFeature.Count().ToString()); break; case DissolveOperatorMode.Sum: DissolveNumbers(groupFeature , newColumnValues , operatorPair , rs => rs.Sum() , rs => rs.Sum()); break; case DissolveOperatorMode.Average: DissolveNumbers(groupFeature , newColumnValues , operatorPair , rs => rs.Average()); break; case DissolveOperatorMode.Min: DissolveNumbers(groupFeature , newColumnValues , operatorPair , rs => rs.Min() , rs => rs.Min()); break; case DissolveOperatorMode.Max: DissolveNumbers(groupFeature , newColumnValues , operatorPair , rs => rs.Max() , rs => rs.Max()); break; } return(feature); }
public static WeatherResultByDayForecast Create(IGrouping <DateTime, WeatherResultList> group) => new WeatherResultByDayForecast { Date = group.Key, Humidity = group.Average(a => a.Main.Humidity), Icon = group.FirstOrDefault()?.Weather.FirstOrDefault()?.Icon, Speed = group.Average(a => a.Wind.Speed), Temp = group.Average(a => a.Main.Temp) };
private WordModel GetWordModel(string language, string toLanguage, IGrouping <Guid, WordLearned> @group) { var word = @group.FirstOrDefault(g => g.Language.LanguageCode == language); var toWord = @group.FirstOrDefault(g => g.Language.LanguageCode == toLanguage); var wordModel = new WordModel() { WordId = @group.Key, Word = word.Word, Description = word.Description, Language = language, ToWord = toWord.Word, ToDescription = toWord.Description, ToLanguage = toLanguage }; return(wordModel); }
public override bool CanHandle(IGrouping <int, Element> group) { var input = group.FirstOrDefault(g => g.ElementType == ElementType.Title); var isBibleVerses = IsBibleVerses(input); var isStartWithVerseNumber = startWithVerseNumber(group); return(isBibleVerses && isStartWithVerseNumber); }
public void Analyze(string self, InstanceGroupConfig groupConfig) { if (this.isAnalyzed) { return; } int num = this.TotalRequested / 2 + 1; this.IsMajoritySuccessfulyReplied = (this.TotalSuccessful >= num); IEnumerable <InstanceStatusInfo> source = from v in this.StatusMap.Values where v != null select v; IEnumerable <GroupStatusInfo.NodeInstancePair> enumerable = from s in source orderby s.LastInstanceExecuted descending select new GroupStatusInfo.NodeInstancePair { NodeName = s.Self, InstanceNumber = s.LastInstanceExecuted }; foreach (GroupStatusInfo.NodeInstancePair nodeInstancePair in enumerable) { if (this.HighestInstance == null) { this.HighestInstance = nodeInstancePair; } if (Utils.IsEqual(nodeInstancePair.NodeName, self, StringComparison.OrdinalIgnoreCase)) { this.LocalInstance = nodeInstancePair; break; } } PaxosBasicInfo[] array = (from s in source where s.PaxosInfo != null select s.PaxosInfo).ToArray <PaxosBasicInfo>(); this.IsMajorityHavePaxosInitialized = (array.Length >= num); IEnumerable <Round <string> > source2 = from p in array where !string.IsNullOrEmpty(p.LeaderHint.replica) select p.LeaderHint; IOrderedEnumerable <IGrouping <string, Round <string> > > source3 = from s in source2 group s by s.replica into g orderby g.Count <Round <string> >() descending select g; this.IsMajorityAgreeWithLeader = false; IGrouping <string, Round <string> > grouping = source3.FirstOrDefault <IGrouping <string, Round <string> > >(); if (grouping != null) { this.LeaderHint = grouping.FirstOrDefault <Round <string> >(); int num2 = grouping.Count <Round <string> >(); if (num2 >= num) { this.IsMajorityAgreeWithLeader = true; } } this.isAnalyzed = true; }
private IEnumerable <string[]> GetDescription_UF_CUTTER_TYPE_DRILLL(IGrouping <Tag, NxOperation> operations) { var list = new List <string[]>(); var operation = operations.FirstOrDefault(); if (operation == null) { return(list); } var s = string.Format("<o>={0:F2}", operation.UF_PARAM_TL_DIAMETER); if (Math.Abs(operation.UF_PARAM_TL_ZMOUNT) > 0) { s += string.Format("; вылет={0:F2}", operation.UF_PARAM_TL_ZMOUNT); } var s2 = "Н/А"; list.Add(new[] { "Т", "-", operation.ToolNumber, operation.UF_PARAM_TL_DESCRIPTION, s, string.Empty, s2 }); s = string.Empty; if (Math.Abs(operation.UF_PARAM_TL_FLUTE_LN) > 0) { s += string.Format("Длина реж. кромки={0:F2}; ", operation.UF_PARAM_TL_FLUTE_LN); } s += string.Format("Кол. зубьев={0}", operation.UF_PARAM_TL_NUM_FLUTES); switch (operation.CUTTER_SUBTYPE) { case UFConstants.UF_CUTTER_SUBTYPE_DRILL_STD: case UFConstants.UF_CUTTER_SUBTYPE_DRILL_CENTER_BELL: case UFConstants.UF_CUTTER_SUBTYPE_DRILL_SPOT_DRILL: { s += string.Format("; Угол заточки вершины={0:F2}<$s>", RadiansToDegrees(operation.UF_PARAM_TL_POINT_ANG)); break; } case UFConstants.UF_CUTTER_SUBTYPE_DRILL_COUNTERSINK: { s += string.Format("; Угол заточки вершины={0:F2}<$s>", RadiansToDegrees(operation.UF_PARAM_TL_POINT_ANG_COUNTERSINK)); break; } case UFConstants.UF_CUTTER_SUBTYPE_DRILL_TAP: case UFConstants.UF_CUTTER_SUBTYPE_DRILL_THREAD_MILL: { s += string.Format("; Шаг резьбы={0:F4} мм.", operation.UF_PARAM_TL_PITCH); var s1 = operation.UF_PARAM_TL_DIRECTION == 1 ? "Правое" : "Левое"; s += string.Format("; Направление вращения={0}", s1); break; } } var strings = ParseDescriptionString(s); list.AddRange(strings.Select(s1 => new[] { "", "-", string.Empty, s1, string.Empty, string.Empty, string.Empty })); return(list); }
private ThreadExecutor <T> GetFreeThreadExecutor(T item) { ModuleProc PROC = new ModuleProc(this.DYN_MODULE_NAME, "GetFreeThreadExecutor"); ThreadExecutor <T> executor = null; try { // executor key free thread approach if (item is IExecutorKeyFreeThread) { // find the thread with minimum number of items IGrouping <int, KeyValuePair <int, int> > groupedItem = (from i in _workerThreadItems group i by i.Value).OrderBy(i => i.Key).FirstOrDefault(); int index = 0; if (groupedItem != null) { index = groupedItem.FirstOrDefault().Key; } if (index >= 0 && index < _workerThreads.Count) { executor = _workerThreads[index]; Log.Info(PROC, "Thread " + executor.ContainerIndex.ToString() + " was taken by IExecutorKeyFreeThread approach."); if (_workerThreadItems.ContainsKey(index)) { _workerThreadItems[index] = _workerThreadItems[index] + 1; } } } // executor key thread approach if (executor == null && item is IExecutorKeyThread) { int index = ((IExecutorKeyThread)item).GetThreadIndex(this.Capacity); if (index >= 0 && index < _workerThreads.Count) { executor = _workerThreads[index]; Log.Info(PROC, "Thread " + executor.ContainerIndex.ToString() + " was taken by ExecutorKeyTheread approach."); } } } catch (Exception ex) { Log.Exception(PROC, ex); } finally { // no more free threads if (executor == null) { executor = _workerThreads[_rnd.Next(0, _workerThreads.Count - 1)]; Log.Info(PROC, "Thread " + executor.ContainerIndex.ToString() + " was taken as random."); } } return(executor); }
private RecommendedProduct GetProductByLatestOrderDate(IGrouping <Guid?, RecommendedProduct> items) { return(new RecommendedProduct() { ProductId = items.Key, ProductName = items.FirstOrDefault().ProductName, LastOrderDate = items.Max(rp => rp.LastOrderDate), }); }
public MethodInfo(IGrouping <int, ParameterInfo> parameters) { var procedure = parameters.FirstOrDefault(); Parameters = parameters; StroredProcedureName = procedure == null ? string.Empty : $"{procedure.SchemaName}.{procedure.ProcedureName}"; generateMthodName(procedure); generateArguments(parameters); }
private ICategory GetCategory(string phase, IGrouping<string, ICategory> group) { return group.FirstOrDefault(x => { if (x.Name.Length < phase.Length) return false; var part = x.Name.Substring(0, phase.Length); return string.Equals(part, phase, StringComparison.OrdinalIgnoreCase); }); }
//public OnStockProductViewModel(Product product): base(product) //{ // var orderedTransactions = product.Transactions.OrderBy(x => x.Date); // var transactionBought = orderedTransactions.LastOrDefault(x => x.TypeID == (int) TranType.Bought); // if (transactionBought != null) // { // DateBought = transactionBought.Date; // SalesmanBought = new SalesmanViewModel(transactionBought.Operator.Salesman); // } // var lastTransaction = orderedTransactions.LastOrDefault(); // if (lastTransaction != null) // { // LastTransactionDate = lastTransaction.Date; // } //} public OnStockProductViewModel(IGrouping<ModelSerialNumberStatusPriceBoughtGroup, Product> products) : base(products.FirstOrDefault()) { IDs = products.Select(x => x.ID).ToList(); Product firstProduct = products.FirstOrDefault(); if (firstProduct == null) return; var orderedTransactions = firstProduct.Transactions.OrderBy(x => x.Date); var transactionBought = orderedTransactions.LastOrDefault(x => x.TypeID == (int) TranType.Bought); if (transactionBought != null) { DateBought = transactionBought.Date; SalesmanBought = new SalesmanViewModel(transactionBought.Operator.Salesman); } var lastTransaction = orderedTransactions.LastOrDefault(); if (lastTransaction != null) { LastTransactionDate = lastTransaction.Date; } }
private static ModuleDefinition CreateModuleDefinition(IGrouping<string, TemplateInfo> t) { var moduleId = GetModuleId(t.Key); var defaultTemplateCandidates = GetDefaultTemplateCandidates(moduleId); var defaultTemplate = t.FirstOrDefault(a => defaultTemplateCandidates.Contains(a.Id)); var templates = t.ToList(); if (defaultTemplate == null && templates.Count == 1) defaultTemplate = templates[0]; var skins = templates.Where(t1 => t1 != defaultTemplate).ToDictionary(GetSkinName); if (defaultTemplate == null && skins.TryGetValue(string.Empty, out defaultTemplate)) skins.Remove(string.Empty); return new ModuleDefinition(moduleId, defaultTemplate, skins); }