Example #1
0
        public PlayerRange GeneratePreflopRange(PositionEnum position, PreflopPlayerStatus preflopStatus)
        {
            switch (preflopStatus)
            {
            case PreflopPlayerStatus.Raised:
                return(GenerateOpenRaisedRange(position));

            case PreflopPlayerStatus.Limped:
                return(GenerateLimpedRange(position));

            case PreflopPlayerStatus.RaiseCalled:
                return(GenerateRaiseCalledRange(position));

            case PreflopPlayerStatus.ThreeBet:
                return(GenerateThreeBetRange(position));

            case PreflopPlayerStatus.ThreeBetCalled:
                return(GenerateThreeBetCalledRange(position));

            case PreflopPlayerStatus.FourBet:
                return(GenerateFourBetRange(position));

            case PreflopPlayerStatus.FourBetCalled:
                return(GenerateFourBetCalledRange(position));

            default:
                throw new NotImplementedException();
            }
        }
Example #2
0
        /// <summary>
        /// 设置红绿灯按钮位置
        /// </summary>
        private void SetBtnPosition(PositionEnum position)
        {
            int   btnWidth       = btnClose.Width;
            int   clientWidth    = this.ClientRectangle.Width;
            Point InitLeftPoint  = new Point(10, 10);
            Point InitRightPoint = new Point(clientWidth - btnWidth - 10, 10);

            switch (position)
            {
            case PositionEnum.Left:
            {
                btnClose.Location   = InitLeftPoint;
                InitLeftPoint.X    += (btnWidth + 8);
                btnMin.Location     = InitLeftPoint;
                InitLeftPoint.X    += (btnWidth + 8);
                btnRestore.Location = InitLeftPoint;
                break;
            }

            case PositionEnum.Right:
            {
                btnClose.Location   = InitRightPoint;
                InitRightPoint.X   -= (btnWidth + 8);
                btnMin.Location     = InitRightPoint;
                InitRightPoint.X   -= (btnWidth + 8);
                btnRestore.Location = InitRightPoint;
                break;
            }
            }
        }
Example #3
0
        public double salaryOfEmployee(PositionEnum position)
        {
            if (position == PositionEnum.Junior)
            {
                var random         = new Random().Next(1000, 2500);
                var doubleToRandom = Convert.ToDouble(random);
                return(doubleToRandom);
            }
            else if (position == PositionEnum.Intermediate)
            {
                var random         = new Random().Next(2500, 4000);
                var doubleToRandom = Convert.ToDouble(random);
                return(doubleToRandom);
            }

            else if (position == PositionEnum.Senior)
            {
                var random         = new Random().Next(4000, 6500);
                var doubleToRandom = Convert.ToDouble(random);
                return(doubleToRandom);
            }
            else if (position == PositionEnum.Teamlead)
            {
                var random         = new Random().Next(4000, 6500);
                var doubleToRandom = Convert.ToDouble(random);
                return(doubleToRandom);
            }
            else
            {
                return(0);
            }
        }
        public bool AddPosition(ref IContractModel instrument, PositionEnum type, int amount, decimal price)
        {
            if (instrument.IsValidContractAmount(amount) && CalculateBTCMarginRequirement(instrument, type, amount, price) < BTCBalance)
            {
                var localInstrument  = instrument;
                var existingPosition = Positions.FirstOrDefault(x => x.Instrument.Name == localInstrument.Name);
                if (existingPosition == null)
                {
                    Positions.Add(new Position(amount, price, type, ref instrument));
                    BTCBalance -= instrument.MarketFee(amount / price);
                    OnBalanceChangeMessage(new BalanceChangeEventArgs(BTCBalance));
                }
                else
                {
                    if (existingPosition.Type == type)
                    {
                        existingPosition.Amount += amount;
                        existingPosition.Price   = decimal.Round((existingPosition.Amount + amount) / ((existingPosition.Amount / existingPosition.Price) + (amount / price)), 2);
                    }
                    else
                    {
                        existingPosition.Amount -= amount;
                        var realisedPnl  = existingPosition.UnrealisedPnl;
                        var positionType = existingPosition.Type;
                        if (existingPosition.Amount < 0)
                        {
                            existingPosition.Type          = existingPosition.Type == PositionEnum.Buy ? PositionEnum.Sell : PositionEnum.Buy;
                            existingPosition.Amount       *= -1;
                            existingPosition.Price         = price;
                            existingPosition.UnrealisedPnl = 0M;
                        }
                        else if (existingPosition.Amount == 0)
                        {
                            Positions.Remove(existingPosition);
                        }
                        else
                        {
                            if (existingPosition.Type == PositionEnum.Buy)
                            {
                                existingPosition.UnrealisedPnl = (existingPosition.Amount / existingPosition.Price) - (existingPosition.Amount / price);
                            }
                            else
                            {
                                existingPosition.UnrealisedPnl = (existingPosition.Amount / price) - (existingPosition.Amount / existingPosition.Price);
                            }
                            realisedPnl -= existingPosition.UnrealisedPnl;
                        }

                        BTCBalance += realisedPnl - instrument.MarketFee(amount / price);
                        OnBalanceChangeMessage(new BalanceChangeEventArgs(BTCBalance));
                        OnHistoricalPositionAddedMessage(new HistoricalPositionAddedEventArgs(new HistoricalPosition(DateTime.Now, realisedPnl, positionType, ref instrument)));
                    }
                }

                CalculateLiquidationPrice();
                return(true);
            }

            return(false);
        }
Example #5
0
        protected override void ParseAttribute(XmlNode attr)
        {
            base.ParseAttribute(attr);
            switch (attr.Name.ToLower())
            {
            case "visible":
                _visible = bool.Parse(attr.InnerText);
                break;

            case "style":
                _style = new Style(attr, this);
                break;

            case "position":
                _position = (PositionEnum)Enum.Parse(typeof(PositionEnum), attr.InnerText, true);
                break;

            case "layout":
                _layout = (LayoutEnum)Enum.Parse(typeof(LayoutEnum), attr.InnerText, true);
                break;

            case "insideplotarea":
                _insidePlotArea = bool.Parse(attr.InnerText);
                break;

            default:
                break;
            }
        }
Example #6
0
        protected override void ParseAttribute(XmlNode attr)
        {
            base.ParseAttribute(attr);
            switch (attr.Name.ToLower())
            {
            case "style":
                _style = new Style(attr, this);
                break;

            case "value":
                _value = new Expression(attr, this);
                break;

            case "visible":
                _visible = bool.Parse(attr.InnerText);
                break;

            case "position":
                _position = (PositionEnum)Enum.Parse(typeof(PositionEnum), attr.InnerText, true);
                break;

            case "rotation":
                _rotation = int.Parse(attr.InnerText);
                break;

            default:
                break;
            }
        }
Example #7
0
        public static IChart <bool> GetOpenRaiseChart(PositionEnum position)
        {
            switch (position)
            {
            case PositionEnum.UnderTheGun:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetUtgOpenRaiseLines()), i => i == 1));

            case PositionEnum.MiddlePosition:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetMpOpenRaiseLines()), i => i == 1));

            case PositionEnum.CuttingOff:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetCoOpenRaiseLines()), i => i == 1));

            case PositionEnum.Button:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetBtnOpenRaiseLines()), i => i == 1));

            case PositionEnum.SmallBlind:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetSbOpenRaiseLines()), i => i == 1));

            case PositionEnum.BigBlind:
                return(Translate(ConvertStringArrayToIntegerMatrix(GetBbOpenRaiseLines()), i => i == 1));

            default:
                throw new InvalidOperationException();
            }
        }
Example #8
0
 public Admin(string name, int phone, double sal, PositionEnum pos, string email)
     : base(name, phone)
 {
     Salary   = sal;
     Position = pos;
     Email    = email;
 }
 public HistoricalPosition(DateTime closeDate, decimal realisedPnl, PositionEnum type, ref IContractModel instrument)
 {
     CloseDate   = closeDate;
     RealisedPnl = realisedPnl;
     Type        = type;
     Instrument  = instrument;
 }
Example #10
0
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Thickness result = new Thickness();

            if (values[0] != null && values[1] != null && values[2] != null && values[3] != null)
            {
                TimeSpan      _time      = (TimeSpan)values[0];
                TimeSpan      _totaltime = (TimeSpan)values[1];
                double        _width     = (double)values[2];
                PositionEnum  _direction = (PositionEnum)values[3];
                List <Double> marge      = new List <double>();
                double        _val       = _totaltime.TotalMilliseconds / _time.TotalMilliseconds * _width;
                foreach (PositionEnum _pos in Enum.GetValues(typeof(PositionEnum)))
                {
                    if ((_direction & _pos) == _pos)
                    {
                        marge.Add(_val);
                    }
                    else
                    {
                        marge.Add(0.0d);
                    }
                }
                result = new Thickness(marge[0], marge[1], marge[2], marge[3]);;
            }

            return(result);
        }
Example #11
0
        private PlayerRoundProfile GenerateNewProfile(Player player, PositionEnum heroPosition)
        {
            var profile = new PlayerRoundProfile()
            {
                Name     = player.Name,
                Position = player.Position,
                IsAlive  = true,
                IsAllIn  = false,
                IsHero   = player.Position == heroPosition
            };

            if (!profile.IsHero)
            {
                profile.InPositionAgainstHero = profile.Position > heroPosition;
            }

            var range = new PlayerRange();

            range.Init(PlayerRangeGridStatusEnum.Included);

            profile.PlayerRange  = range;
            profile.PreflopRange = range;

            return(profile);
        }
Example #12
0
        public Menu(string title, PositionEnum position, int pagesNumber, Page page)
        {
            this.Title = title;

            this.Position = position;

            this.Pages = new Page[pagesNumber];
        }
Example #13
0
        public async Task SetPosition(PositionEnum position)
        {
            List <byte> bytes = new List <byte>();

            //Direction
            bytes.Add(((byte)position));
            await SendCommand(0x08, bytes);
        }
Example #14
0
        public IAsyncAction SetPosition(PositionEnum position)
        {
            List <byte> bytes = new List <byte>();

            //Direction
            bytes.Add(((byte)position));
            return(SendCommand(0x08, bytes).AsAsyncAction());
        }
Example #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Logo" /> class.
 /// </summary>
 /// <param name="position">Define position of logo. (required).</param>
 /// <param name="filename">The filename of the uploaded logo. (required).</param>
 /// <param name="data">Base64 image data. (required).</param>
 public Logo(PositionEnum position = default(PositionEnum), string filename = default(string), byte[] data = default(byte[]))
 {
     this.Position = position;
     // to ensure "filename" is required (not null)
     this.Filename = filename ?? throw new ArgumentNullException("filename is a required property for Logo and cannot be null");
     // to ensure "data" is required (not null)
     this.Data = data ?? throw new ArgumentNullException("data is a required property for Logo and cannot be null");
 }
Example #16
0
 public SitePlayer(string teamCode, PlayerConstants.DepthChartEnum depthChartPosition, PositionEnum position, SiteEnum site, string name)
 {
     Team       = teamCode;
     DepthChart = depthChartPosition;
     Position   = position;
     Site       = site;
     Name       = name;
 }
Example #17
0
 public Position(int amount, decimal price, PositionEnum type, ref IContractModel instrument)
 {
     Amount        = amount;
     Price         = price;
     Type          = type;
     Instrument    = instrument;
     OpenDate      = DateTime.UtcNow;
     UnrealisedPnl = 0M;
 }
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="root">The root element for which this element is built</param>
        /// <param name="log"></param>
        /// <param name="condition">The corresponding function call designator</param>
        /// <param name="position">The position in which the element should be removed</param>
        /// <param name="listExpression">The expressions used to compute the parameters</param>
        /// <param name="parsingData">Additional information about the parsing process</param>
        public RemoveStatement(ModelElement root, ModelElement log, Expression condition, PositionEnum position,
                               Expression listExpression, ParsingData parsingData)
            : base(root, log, parsingData)
        {
            Condition      = SetEnclosed(condition);
            Position       = position;
            ListExpression = SetEnclosed(listExpression);

            IteratorVariable = CreateBoundVariable("X", null);
            InitDeclaredElements();
        }
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="root">The root element for which this element is built</param>
        /// <param name="log"></param>
        /// <param name="condition">The corresponding function call designator</param>
        /// <param name="position">The position in which the element should be removed</param>
        /// <param name="listExpression">The expressions used to compute the parameters</param>
        /// <param name="parsingData">Additional information about the parsing process</param>
        public RemoveStatement(ModelElement root, ModelElement log, Expression condition, PositionEnum position,
            Expression listExpression, ParsingData parsingData)
            : base(root, log, parsingData)
        {
            Condition = SetEnclosed(condition);
            Position = position;
            ListExpression = SetEnclosed(listExpression);

            IteratorVariable = CreateBoundVariable("X", null);
            InitDeclaredElements();
        }
Example #20
0
 public EmployeeModel(Employee model)
 {
     if (model != null)
     {
         ID        = model.ID;
         FirstName = model.FirstName;
         LastName  = model.LastName;
         JoinDate  = model.JoinDate;
         Index     = model.Index;
         Position  = (PositionEnum)model.PositionID;
     }
 }
Example #21
0
        public Player(string name, int stackSize, int index, PositionEnum position)
        {
            Name         = name;
            StackSize    = stackSize;
            PlayerStatus = PlayerStatusEnum.Unpolled;

            Index           = index;
            Position        = position;
            ChipsBetByStage = new Dictionary <StageEnum, int>
            {
                { StageEnum.Preflop, 0 },
                { StageEnum.Flop, 0 },
                { StageEnum.Turn, 0 },
                { StageEnum.River, 0 }
            };
        }
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="root">The root element for which this element is built</param>
        /// <param name="log"></param>
        /// <param name="condition">The corresponding function call designator</param>
        /// <param name="position">The position in which the element should be removed</param>
        /// <param name="listExpression">The expressions used to compute the parameters</param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        public RemoveStatement(ModelElement root, ModelElement log, Expression condition, PositionEnum position,
            Expression listExpression, int start, int end)
            : base(root, log, start, end)
        {
            Condition = condition;
            if (condition != null)
            {
                condition.Enclosing = this;
            }

            Position = position;

            ListExpression = listExpression;
            ListExpression.Enclosing = this;

            IteratorVariable = CreateBoundVariable("X", null);
            InitDeclaredElements();
        }
Example #23
0
        private string GetPositionCode(PositionEnum pEnmPosition)
        {
            switch (pEnmPosition)
            {
            case PositionEnum.BATCH_NUMBER:
                return(Location == LocationEnum.HERMOSILLO ? "01" :
                       Location == LocationEnum.SONORA_SUR ? "L" : "");

            case PositionEnum.SALE_HEADS_NUMBER:
                return(Location == LocationEnum.HERMOSILLO ? "02" :
                       Location == LocationEnum.SONORA_SUR ? "C" : "");

            case PositionEnum.SALE_TOTAL_WEIGHT:
                return(Location == LocationEnum.HERMOSILLO ? "03" :
                       Location == LocationEnum.SONORA_SUR ? "P" : "");

            case PositionEnum.SALE_AVERAGE_WEIGHT:
                return(Location == LocationEnum.HERMOSILLO ? "04" :
                       Location == LocationEnum.SONORA_SUR ? "p" : "");

            case PositionEnum.BUYER_NUMBER:
                return(Location == LocationEnum.HERMOSILLO ? "05" :
                       Location == LocationEnum.SONORA_SUR ? "B" : "");

            case PositionEnum.PRICE:
                return(Location == LocationEnum.HERMOSILLO ? "06" :
                       Location == LocationEnum.SONORA_SUR ? "M" : "");

            case PositionEnum.HEADS_NUMBER:
                return(Location == LocationEnum.HERMOSILLO ? "07" :
                       Location == LocationEnum.SONORA_SUR ? "C" : "");

            case PositionEnum.TOTAL_WEIGHT:
                return(Location == LocationEnum.HERMOSILLO ? "08" :
                       Location == LocationEnum.SONORA_SUR ? "P" : "");

            case PositionEnum.AVERAGE_WEIGHT:
                return(Location == LocationEnum.HERMOSILLO ? "09" :
                       Location == LocationEnum.SONORA_SUR ? "p" : "");

            default:
                throw new Exception("Posición invalida.");
            }
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="root">The root element for which this element is built</param>
        /// <param name="condition">The corresponding function call designator</param>
        /// <param name="position">The position in which the element should be removed</param>
        /// <param name="listExpression">The expressions used to compute the parameters</param>
        public RemoveStatement(ModelElement root, Expression condition, PositionEnum position, Expression listExpression)
            : base(root)
        {
            Condition = condition;
            if (condition != null)
            {
                condition.Enclosing = this;
            }

            Position = position;

            ListExpression = listExpression;
            ListExpression.Enclosing = this;

            IteratorVariable = (Variables.Variable)Generated.acceptor.getFactory().createVariable();
            IteratorVariable.Enclosing = this;
            IteratorVariable.Name = "X";
            InitDeclaredElements();
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="root">The root element for which this element is built</param>
        /// <param name="condition">The corresponding function call designator</param>
        /// <param name="position">The position in which the element should be removed</param>
        /// <param name="listExpression">The expressions used to compute the parameters</param>
        public RemoveStatement(ModelElement root, Expression condition, PositionEnum position, Expression listExpression)
            : base(root)
        {
            Condition = condition;
            if (condition != null)
            {
                condition.Enclosing = this;
            }

            Position = position;

            ListExpression           = listExpression;
            ListExpression.Enclosing = this;

            IteratorVariable           = (Variables.Variable)Generated.acceptor.getFactory().createVariable();
            IteratorVariable.Enclosing = this;
            IteratorVariable.Name      = "X";
            InitDeclaredElements();
        }
        private decimal CalculateBTCMarginRequirement(IContractModel instrument, PositionEnum type, int amount, decimal price)
        {
            var marginUsed     = CurrentMarginUsed();
            var marginRequired = instrument.InitialMargin(amount / price);

            if (type == PositionEnum.Buy)
            {
                marginRequired = marginRequired + marginUsed.Item1 - marginUsed.Item2;
            }
            else
            {
                marginRequired = marginRequired + marginUsed.Item2 - marginUsed.Item1;
            }

            if (marginRequired < 0)
            {
                marginRequired = 0;
            }
            return(marginRequired);
        }
Example #27
0
        /// <summary>
        /// See if villain could still possibly fold
        /// </summary>
        /// <param name="raiser"></param>
        /// <param name="hero"></param>
        /// <param name="villain"></param>
        /// <returns></returns>
        public static bool VillainFoldable(PlayerRoundProfile raiser, PlayerRoundProfile hero, PlayerRoundProfile villain)
        {
            if (!villain.IsAlive)
            {
                throw new InvalidOperationException();
            }

            if (villain.PlayerStatus == PlayerStatusEnum.AllIned)
            {
                return(false);
            }

            if (villain.Position == raiser.Position)
            {
                return(false);
            }

            PositionEnum position = raiser.Position;

            while (true)
            {
                //moving around
                position++;
                if (position == PositionEnum.Total)
                {
                    position = PositionEnum.SmallBlind;
                }

                //villain is in a later position to hero, foldable
                if (position == hero.Position)
                {
                    return(true);
                }

                //the villain is in an earlier position to hero, already called, not foldable
                if (position == villain.Position)
                {
                    return(false);
                }
            }
        }
        public FanGraphsUriEndPoint FgHitterMasterReport(PositionEnum positionEnum = PositionEnum.All, int minPlateAppearances = 0, string league = "all", int year = 0, int pageNumber = 1)
        {
            object convertedPlateAppearances;

            convertedPlateAppearances = minPlateAppearances == 0 ? (object)"y" : minPlateAppearances;

            if (year == 0)
            {
                year = currentYear;
            }

            var position = PositionString(positionEnum);

            PrintHitterSearchParameters(position, convertedPlateAppearances, league, year, positionEnum);

            return(new FanGraphsUriEndPoint
            {
                BaseUri = baseUri,
                EndPoint = $"pos={position}&stats=bat&lg={league}&qual={convertedPlateAppearances}&type=c%2c3%2c4%2c5%2c6%2c12%2c11%2c13%2c21%2c14%2c23%2c34%2c35%2c36%2c40%2c41%2c45%2c206%2c209%2c211%2c61%2c102%2c106%2c110%2c289%2c290%2c291%2c292%2c293%2c294%2c295%2c296%2c297%2c298%2c299%2c300%2c301%2c302%2c303%2c304&season={year}&month=0&season1={year}&ind=0&team=0&rost=0&age=0&filter=&players=0&startdate=&enddate=&page={pageNumber}_30",
            });
        }
Example #29
0
        private Decision GetDecisionAgainstFiveBet(PreflopStatusSummary statusSummary, RangeGrid grid,
                                                   PositionEnum fiveBetPosition)
        {
            var fourBetChart = ChartUtils.GetDecisionAgainstThreeBetChart(statusSummary.Me.Position, fiveBetPosition);
            var decision     = fourBetChart.Get(grid);

            switch (decision)
            {
            case DecisionAgainstThreeBetEnum.Fold:
            case DecisionAgainstThreeBetEnum.Call:
                throw new InvalidOperationException("Should not four bet in the first place");

            case DecisionAgainstThreeBetEnum.BluffFourBet:
                return(new Decision(DecisionType.Fold, 0));

            case DecisionAgainstThreeBetEnum.ValueFourBet:
                return(new Decision(DecisionType.Call, statusSummary.ChipsToCall));

            default:
                throw new InvalidOperationException();
            }
        }
Example #30
0
        private Decision GetDecisionAgainstFourBet(PreflopStatusSummary statusSummary, RangeGrid grid,
                                                   PositionEnum fourBetPosition)
        {
            var threeBetChart = ChartUtils.GetDecisionAgaisntOpenRaiseChart(statusSummary.Me.Position, fourBetPosition);
            var decision      = threeBetChart.Get(grid);

            switch (decision)
            {
            case DecisionAgainstOpenRaiseEnum.Fold:
            case DecisionAgainstOpenRaiseEnum.Call:
                throw new InvalidOperationException("Should not three bet in the first place");

            case DecisionAgainstOpenRaiseEnum.BluffThreeBet:
                return(new Decision(DecisionType.Fold, 0));

            case DecisionAgainstOpenRaiseEnum.ValueThreeBet:
                return(new Decision(DecisionType.Reraise, GetAllInSize(statusSummary)));

            default:
                throw new InvalidCastException();
            }
        }
Example #31
0
        private PlayerRange GenerateOpenRaisedRange(PositionEnum position)
        {
            int[,] grids;
            switch (position)
            {
            case PositionEnum.UnderTheGun:
                grids = GenerateOpenRaiseForUtgTight();
                break;

            case PositionEnum.MiddlePositioin:
                grids = GenerateOpenRaiseForMpTight();
                break;

            case PositionEnum.CuttingOff:
                grids = GenerateOpenRaiseForCoTight();
                break;

            case PositionEnum.Button:
                grids = GenerateOpenRaiseForBtnTight();
                break;

            case PositionEnum.SmallBlind:
                grids = GenerateOpenRaiseForSbTight();
                break;

            case PositionEnum.BigBlind:
                grids = GenerateOpenRaiseForBbTight();
                break;

            default:
                throw new InvalidOperationException();
            }

            var range = new PlayerRange();

            range.Init(grids);

            return(range);
        }
Example #32
0
 protected override void ParseAttribute(XmlNode attr)
 {
     switch (attr.Name.ToLower())
     {
         case "reportitems":
             _reportItems = new ReportItems(attr, Parent);
             break;
         case "style":
             _style = new Style(attr, this);
             break;
         case "position":
             _position = (PositionEnum)Enum.Parse(typeof(PositionEnum), attr.InnerText);
             break;
         case "dataelementname":
             _dataElementName = attr.InnerText;
             break;
         case "dataelementoutput":
             _dataElementOutput = (DataElementOutputEnum)Enum.Parse(typeof(DataElementOutputEnum), attr.InnerText);
             break;
         default:
             break;
     }
 }
Example #33
0
 public static string GetDescription(this PositionEnum value)
 {
     if (value == PositionEnum.HeadDepartment)
     {
         return("Завідуючий кафедрою");
     }
     if (value == PositionEnum.DocentDepartment)
     {
         return("Доцент кафедрою");
     }
     if (value == PositionEnum.SeniorLecturer)
     {
         return("Старший викладач кафедри");
     }
     if (value == PositionEnum.Lecturer)
     {
         return("Викладач кафедри");
     }
     if (value == PositionEnum.Assistant)
     {
         return("Асистент");
     }
     return("");
 }