示例#1
0
        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;
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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));
        }
示例#6
0
 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());
        }
示例#9
0
 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)
     });
 }
示例#10
0
        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);
        }
示例#11
0
        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);
        }
示例#12
0
        /// <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));
        }
示例#13
0
        /// <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());
        }
示例#14
0
        /// <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));
        }
示例#15
0
        private string GetCompositePublicIp(IGrouping <string, HubClientSession> grp)
        {
            var real = grp.FirstOrDefault(_ => !(_.CurrentState?.PublicIP?.IsBlank() ?? true));

            return(grp.Key + ((real == null) ? ""
                : $"  (global: {real.CurrentState.PublicIP})"));
        }
示例#16
0
        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
            });
        }
示例#17
0
        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);
        }
示例#19
0
        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);
        }
示例#20
0
        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);
        }
示例#21
0
        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);
        }
示例#23
0
 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);
        }
示例#25
0
        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);
        }
示例#26
0
        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;
        }
示例#27
0
        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);
        }
示例#28
0
        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);
        }
示例#29
0
 private RecommendedProduct GetProductByLatestOrderDate(IGrouping <Guid?, RecommendedProduct> items)
 {
     return(new RecommendedProduct()
     {
         ProductId = items.Key,
         ProductName = items.FirstOrDefault().ProductName,
         LastOrderDate = items.Max(rp => rp.LastOrderDate),
     });
 }
示例#30
0
        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);
     });
 }
示例#32
0
        //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);
		}