Ejemplo n.º 1
0
        public void Update(CalculationEntry item)
        {
            var exists = this.Get(item.Id) != null;

            if (exists)
            {
                _dataContext.CalculationEntries.Update(item);
            }
            else
            {
                throw new InvalidOperationException("Невозможно обновить несуществующую запись!");
            }
        }
        public CalculationEntry CalculateCameraParameters(DistanceToDevice distanceToDevice, DistanceToObject distanceToObject, CalculationMode calculation)
        {
            if (distanceToDevice is null)
            {
                throw new ArgumentException(nameof(distanceToDevice));
            }

            if (distanceToObject is null)
            {
                throw new ArgumentException(nameof(distanceToObject));
            }
            var aCathet    = new Side(distanceToObject.Val, TriangleSideTypes.Cathet);
            var bCathet    = new Side(distanceToDevice.Val - Constant.AverageHumanHeight, TriangleSideTypes.Cathet);
            var hypotenuse = new Side(GetHypotenusesLength(aCathet.Length, bCathet.Length), TriangleSideTypes.Hypotenuse);

            var tangentAlpha = (double)bCathet.Length / (double)aCathet.Length;
            var alphaDegrees = Math.Round(Math.Atan(tangentAlpha) * Constant.DegreesInRadian, 2);
            var alphaAngle   = new Angle(alphaDegrees);
            var bAngle       = new Angle(Constant.RightAngleDegrees);
            var cAngle       = new Angle(Constant.FullTriangleDegrees - bAngle.Degrees - alphaAngle.Degrees);

            var calculationEntry = new CalculationEntry()
            {
                Height              = distanceToDevice.Val,
                AlfaAngle           = alphaAngle.Degrees,
                CreationDateTime    = DateTime.Now,
                DistanceAboveObject = bCathet.Length,
                DistanceToObject    = distanceToObject.Val
            };

            if (calculation == CalculationMode.WithSave)
            {
                Save(calculationEntry);
            }

            return(calculationEntry);
        }
Ejemplo n.º 3
0
 public void Create(CalculationEntry item)
 {
     _dataContext.CalculationEntries.Add(item);
 }
 private void Save(CalculationEntry entry)
 {
     this._repository.Create(entry);
     this._repository.Save();
 }