Exemplo n.º 1
0
        public void DefDefinesFunctionThrowsOnBadToken(int insertRemAt, string nextToken, string message)
        {
            var tokens = new List <IToken>
            {
                new Token("FN", TokenClass.Statement, TokenType.Fn),
                new Token("NAME"),
                new Token("(", TokenClass.Seperator, TokenType.OpenBracket),
                new Token("A"),
                new Token(")", TokenClass.Seperator, TokenType.CloseBracket),
                new Token("=", TokenClass.Seperator, TokenType.Equal),
                new Token("A"),
                new Token("*", TokenClass.Seperator, TokenType.Multiply),
                new Token("A"),
                new Token(":", TokenClass.Seperator, TokenType.Colon)
            };

            tokens.Insert(insertRemAt, new Token("bang", TokenClass.Remark));

            _runEnvironment      = new RunEnvironment();
            _variableRepository  = new VariableRepository();
            _expressionEvaluator = new ExpressionEvaluator(_variableRepository, _runEnvironment);
            var programLine = new ProgramLine(10, tokens);

            _runEnvironment.CurrentLine = programLine;
            var sut = new Def(_runEnvironment, _expressionEvaluator);

            Test.Throws <SyntaxErrorException>(sut.Execute);
            Assert.AreEqual(nextToken, _runEnvironment.CurrentLine.NextToken().Text);
        }
        public void VariableRepositoryTypesAndArraysOccupyDifferentSpaces()
        {
            IVariableRepository sut  = new VariableRepository();
            var shortReference       = sut.GetOrCreateVariable("AB%", new short[] { });
            var doubleReference      = sut.GetOrCreateVariable("AB", new short[] { });
            var stringReference      = sut.GetOrCreateVariable("AB$", new short[] { });
            var shortArrayReference  = sut.GetOrCreateVariable("AB%", new short[] { 2, 3 });
            var doubleArrayReference = sut.GetOrCreateVariable("AB", new short[] { 2, 3 });
            var stringArrayReference = sut.GetOrCreateVariable("AB$", new short[] { 2, 3 });

            shortReference.SetValue(new Accumulator((short)1));
            shortArrayReference.SetValue(new Accumulator((short)2));
            stringReference.SetValue(new Accumulator("3"));
            stringArrayReference.SetValue(new Accumulator("4"));
            doubleReference.SetValue(new Accumulator(5.0));
            doubleArrayReference.SetValue(new Accumulator(6.0));

            var shortReference2       = sut.GetOrCreateVariable("AB%", new short[] { });
            var doubleReference2      = sut.GetOrCreateVariable("AB", new short[] { });
            var stringReference2      = sut.GetOrCreateVariable("AB$", new short[] { });
            var shortArrayReference2  = sut.GetOrCreateVariable("AB%", new short[] { 2, 3 });
            var doubleArrayReference2 = sut.GetOrCreateVariable("AB", new short[] { 2, 3 });
            var stringArrayReference2 = sut.GetOrCreateVariable("AB$", new short[] { 2, 3 });

            Assert.AreEqual((short)1, shortReference2.GetValue().GetValue(typeof(short)));
            Assert.AreEqual((short)2, shortArrayReference2.GetValue().GetValue(typeof(short)));
            Assert.AreEqual("3", stringReference2.GetValue().GetValue(typeof(string)));
            Assert.AreEqual("4", stringArrayReference2.GetValue().GetValue(typeof(string)));
            Assert.AreEqual(5.0, doubleReference2.GetValue().GetValue(typeof(double)));
            Assert.AreEqual(6.0, doubleArrayReference2.GetValue().GetValue(typeof(double)));
        }
Exemplo n.º 3
0
        public void DefDefinesFunctionThrowsOnBadLineNumber()
        {
            var tokens = new List <IToken>
            {
                new Token("FN", TokenClass.Statement, TokenType.Fn),
                new Token("NAME"),
                new Token("(", TokenClass.Seperator, TokenType.OpenBracket),
                new Token("A"),
                new Token(")", TokenClass.Seperator, TokenType.CloseBracket),
                new Token("=", TokenClass.Seperator, TokenType.Equal),
                new Token("A"),
                new Token("*", TokenClass.Seperator, TokenType.Multiply),
                new Token("A"),
                new Token(":", TokenClass.Seperator, TokenType.Colon)
            };

            _runEnvironment      = new RunEnvironment();
            _variableRepository  = new VariableRepository();
            _expressionEvaluator = new ExpressionEvaluator(_variableRepository, _runEnvironment);
            var programLine = new ProgramLine(null, tokens);

            _runEnvironment.CurrentLine = programLine;

            var sut = new Def(_runEnvironment, _expressionEvaluator);

            Test.Throws <IllegalDirectException>(sut.Execute);
        }
Exemplo n.º 4
0
        public static void Main(string[] args)
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                                .AddEnvironmentVariables("KANTAVERKKOAPP_").Build();

            var apiUrl = string.IsNullOrEmpty(configuration["API_URL"]) ? "https://data.fingrid.fi" : configuration["API_URL"];

            if (string.IsNullOrEmpty(configuration["API_KEY"]))
            {
                throw new ArgumentException("API_KEY cannot be empty");
            }

            var apiClient          = new ApiClient(configuration["API_URL"], configuration["API_KEY"]);
            var appContext         = new KantaverkkoAppContext(configuration);
            var variableRepository = new VariableRepository(appContext);

            foreach (var type in Enum.GetValues(typeof(VariableType)).Cast <VariableType>())
            {
                const int initialYear = 2010;
                var       startTime   = new DateTime(initialYear, 1, 1);
                var       latestEvent = variableRepository.GetLatestEvent(type);
                if (latestEvent != null)
                {
                    startTime = latestEvent.EndTime;
                }
                var endTime  = DateTime.UtcNow.AddYears(1);
                var events   = apiClient.GetEvents(startTime, endTime, type).Result;
                var variable = variableRepository.GetVariableForType(type);
                variable.Events = events;
                variableRepository.Save(variable);
            }
        }
Exemplo n.º 5
0
        private void ucGetVariables_Load(object sender, EventArgs e)
        {
            try
            {
                using (IVariableRepository variableRepo = new VariableRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    var result = variableRepo.GetList("Calculation", "Unit");
                    if (result.Result == null)
                    {
                        return;
                    }
                    dgvVariables.DataSource                       = result.Result;
                    dgvVariables.Columns["ID"].Visible            = false;
                    dgvVariables.Columns["CalculationId"].Visible = false;
                    dgvVariables.Columns["UnitId"].Visible        = false;

                    dgvVariables.Columns["Name"].HeaderText        = "Değişken Adı";
                    dgvVariables.Columns["Display"].HeaderText     = "Sembol";
                    dgvVariables.Columns["Value"].HeaderText       = "Değeri";
                    dgvVariables.Columns["Calculation"].HeaderText = "Kullanılan Hesaplamanın Sonucu";
                    dgvVariables.Columns["Unit"].HeaderText        = "Birimi";
                    dgvVariables.Columns["CreatedAt"].HeaderText   = "Oluşturulma Tarihi";
                    dgvVariables.Columns["UpdatedAt"].HeaderText   = "Düzenlenme Tarihi";
                    dgvVariables.Columns["IsActive"].HeaderText    = "Aktiflik";
                    dgvVariables.Columns["IsDeleted"].HeaderText   = "Silinme";
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 6
0
        public void DefDefinesFunctionAndDoesntEatColon()
        {
            var tokens = new List <IToken>
            {
                new Token("FN", TokenClass.Statement, TokenType.Fn),
                new Token("NAME"),
                new Token("(", TokenClass.Seperator, TokenType.OpenBracket),
                new Token("A"),
                new Token(")", TokenClass.Seperator, TokenType.CloseBracket),
                new Token("=", TokenClass.Seperator, TokenType.Equal),
                new Token("A"),
                new Token("*", TokenClass.Seperator, TokenType.Multiply),
                new Token("A"),
                new Token(":", TokenClass.Seperator, TokenType.Colon)
            };

            _runEnvironment      = new RunEnvironment();
            _variableRepository  = new VariableRepository();
            _expressionEvaluator = new ExpressionEvaluator(_variableRepository, _runEnvironment);
            var programLine = new ProgramLine(10, tokens);

            _runEnvironment.CurrentLine = programLine;

            var sut = new Def(_runEnvironment, _expressionEvaluator);

            sut.Execute();

            Assert.AreEqual(TokenType.Colon, _runEnvironment.CurrentLine.NextToken().Seperator);
            var definition = _runEnvironment.DefinedFunctions["NAME"];

            Assert.AreEqual("NAME", definition.FunctionName);
            Assert.AreEqual("A", definition.VariableName);
            Assert.AreEqual(6, definition.LineToken);
            Assert.AreEqual(programLine, definition.Line);
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (_Variable == null)
            {
                lblMessage.Text = "Düzenlenecek değişkeni seçiniz.";
                return;
            }
            if (_Unit == null)
            {
                lblMessage.Text = "Birimi seçiniz.";
                return;
            }
            try
            {
                using (IVariableRepository variableRepo = new VariableRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    Variable variable = variableRepo.Get(x => x.ID == _Variable.ID).Result;
                    variable.Name      = txtName.Text;
                    variable.Display   = txtDisplay.Text;
                    variable.IsActive  = chkIsActive.Checked;
                    variable.IsDeleted = chkIsDeleted.Checked;
                    variable.UnitId    = ((Unit)cmbUnits.SelectedItem).ID;
                    variable.Value     = Convert.ToDouble(txtValue.Text);
                    variable.UpdatedAt = DateTime.UtcNow;

                    var result = variableRepo.Update(variable);
                    switch (result.State)
                    {
                    case Basecore.Model.Enums.BusinessResultType.NotSet:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Success:
                        lblMessage.Text = "Düzenleme başarılı. Son düzenlenen değişkenin adı : " + result.Result.Name;

                        break;

                    case Basecore.Model.Enums.BusinessResultType.Error:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Warning:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Info:
                        lblMessage.Text = result.Message;
                        break;

                    default:
                        break;
                    }
                    ucEditVariables_Load(sender, e);
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = "Hata : " + ex.GetBaseException();
            }
        }
Exemplo n.º 8
0
        public void Initialize()
        {
            mock_context        = new Mock <VariableContext>();
            mock_variable_table = new Mock <DbSet <Variable> >();
            variable_list       = new List <Variable>(); // Fake
            repo = new VariableRepository(mock_context.Object);

            ConnectMocksToDatastore();
        }
        public void VariableRepositoryReturnsZeroShortOnFirstUse()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("N%", new short[] { });
            var accumulator         = variableReference.GetValue();

            Assert.AreEqual((short)0, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(short), accumulator.Type);
        }
Exemplo n.º 10
0
        public ActionResult Remove(long var_id)
        {
            using (VariableRepository variable_repository = new VariableRepository())
            {
                variable_repository.Remove(var_id);
            }

            return(RedirectToAction("Index"));
        }
        public void VariableRepositoryTestRedimensionThrowsException(string variableName, bool throwsException)
        {
            IVariableRepository sut = new VariableRepository();

            sut.DimensionArray("AB", new short[] { 2, 3 });
            Test.Throws <RedimensionedArrayException>(
                () => sut.DimensionArray(variableName, new short[] { 2, 3 }),
                throwsException);
        }
        public void VariableRepositoryReturnsEmptyStringOnFirstUse()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("N$", new short[] { });
            var accumulator         = variableReference.GetValue();

            Assert.AreEqual(string.Empty, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(string), accumulator.Type);
        }
Exemplo n.º 13
0
 public UnitOfWork(DataContext context)
 {
     _dataContext  = context;
     Projects      = new ProjectRepository(_dataContext);
     Variables     = new VariableRepository(_dataContext);
     Records       = new RecordRepository(_dataContext);
     Notifications = new NotificationRepository(_dataContext);
     Auth          = new AuthRepository(_dataContext);
     Endpoints     = new EndpointRepository(_dataContext);
 }
        public void VariableRepositoryTestClear()
        {
            IVariableRepository sut = new VariableRepository();
            var doubleReference     = sut.GetOrCreateVariable("AB", new short[] { 0, 0 });

            doubleReference.SetValue(new Accumulator(4.0));
            sut.Clear();
            var doubleReference2 = sut.GetOrCreateVariable("AB", new short[] { 0, 0 });

            Assert.AreEqual(0.0, doubleReference2.GetValue().ValueAsDouble());
        }
        public void VariableRepositoryTruncatesNamesToTwoCharacters()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("ABCD", new short[] { });

            variableReference.SetValue(new Accumulator(4.0));
            var variableReference2 = sut.GetOrCreateVariable("ABEF", new short[] { });
            var accumulator        = variableReference.GetValue();

            Assert.AreEqual(4.0, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(double), accumulator.Type);
        }
        public void VariableRepositoryDistinguishesStringArrayNamesToTwoCharacters()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("AB$", new short[] { 2, 3 });
            var variableReference2  = sut.GetOrCreateVariable("AC$", new short[] { 2, 3 });

            variableReference.SetValue(new Accumulator("HELLO"));
            var accumulator = variableReference2.GetValue();

            Assert.AreEqual(string.Empty, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(string), accumulator.Type);
        }
        public void VariableRepositoryTruncatesStringNamesToTwoCharacters()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("ABCD$", new short[] { });

            variableReference.SetValue(new Accumulator("HELLO"));
            var variableReference2 = sut.GetOrCreateVariable("ABEF$", new short[] { });
            var accumulator        = variableReference.GetValue();

            Assert.AreEqual("HELLO", accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(string), accumulator.Type);
        }
        public void VariableRepositoryTruncatesShortArrayNamesToTwoCharacters()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("ABCD%", new short[] { 2, 3 });
            var variableReference2  = sut.GetOrCreateVariable("ABEF%", new short[] { 2, 3 });

            variableReference.SetValue(new Accumulator((short)4));
            var accumulator = variableReference2.GetValue();

            Assert.AreEqual((short)4, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(short), accumulator.Type);
        }
        public void VariableRepositoryDistinguishesArrayNamesToTwoCharacters()
        {
            IVariableRepository sut = new VariableRepository();
            var variableReference   = sut.GetOrCreateVariable("AB", new short[] { 2, 3 });
            var variableReference2  = sut.GetOrCreateVariable("AC", new short[] { 2, 3 });

            variableReference.SetValue(new Accumulator(4.0));
            var accumulator = variableReference2.GetValue();

            Assert.AreEqual(0.0, accumulator.GetValue(accumulator.Type));
            Assert.AreEqual(typeof(double), accumulator.Type);
        }
Exemplo n.º 20
0
        public ActionResult Edit(long?var_id)
        {
            using (VariableRepository variable_repository = new VariableRepository())
            {
                ViewBag.groups = variable_repository.AllGroups(CurrentUser.user_domain);

                if (var_id.HasValue)
                {
                    ViewBag.item = variable_repository.GetByID(var_id.Value);
                }
            }

            return(View());
        }
Exemplo n.º 21
0
        public ActionResult Index()
        {
            using (UserRepository database = new UserRepository())
            {
                ViewBag.user = database.GetByLogin(User.Identity.Name);
            }

            using (VariableRepository variable_repository = new VariableRepository())
            {
                ViewBag.items = variable_repository.All(CurrentUser.user_domain);
            }

            return(View());
        }
Exemplo n.º 22
0
        public static NameValueCollection All(string domain)
        {
            NameValueCollection variables = new NameValueCollection();

            using (VariableRepository variable_repository = new VariableRepository())
            {
                foreach (var item in variable_repository.All(domain))
                {
                    variables.Add(item.var_name, item.var_value);
                }
            }

            return(variables);
        }
Exemplo n.º 23
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (_Variable == null)
                {
                    lblMessage.Text = "Silinecek değişkeni seçiniz.";
                    return;
                }
                using (IVariableRepository varRepo = new VariableRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    Variable oldVar = varRepo.Get(x => x.ID == _Variable.ID).Result;
                    var      result = varRepo.Delete(oldVar);
                    switch (result.State)
                    {
                    case Basecore.Model.Enums.BusinessResultType.NotSet:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Success:
                        lblMessage.Text = "Başarıyla silindi. Son silinen değişkenin adı : " + oldVar.Name;

                        break;

                    case Basecore.Model.Enums.BusinessResultType.Error:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Warning:
                        lblMessage.Text = result.Message;
                        break;

                    case Basecore.Model.Enums.BusinessResultType.Info:
                        lblMessage.Text = result.Message;
                        break;

                    default:
                        break;
                    }
                    ucEditVariables_Load(sender, e);
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = "Hata : " + ex.GetBaseException();
            }
        }
Exemplo n.º 24
0
        private void ucEditVariables_Load(object sender, EventArgs e)
        {
            chkIsActive.Text     = "Evet";
            chkIsActive.Checked  = true;
            chkIsDeleted.Checked = false;
            chkIsDeleted.Text    = "Hayır";
            try
            {
                using (IVariableRepository variableRepo = new VariableRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    var result = variableRepo.GetList("Calculation", "Unit");
                    if (result.Result == null)
                    {
                        lblMessage.Text = "Düzenlenecek kayıt bulunamadı.";
                        return;
                    }
                    dgvVariables.DataSource                       = result.Result;
                    dgvVariables.Columns["ID"].Visible            = false;
                    dgvVariables.Columns["CalculationId"].Visible = false;
                    dgvVariables.Columns["UnitId"].Visible        = false;

                    dgvVariables.Columns["Name"].HeaderText        = "Değişken Adı";
                    dgvVariables.Columns["Display"].HeaderText     = "Sembol";
                    dgvVariables.Columns["Value"].HeaderText       = "Değeri";
                    dgvVariables.Columns["Calculation"].HeaderText = "Kullanılan Hesaplamanın Sonucu";
                    dgvVariables.Columns["Unit"].HeaderText        = "Birimi";
                    dgvVariables.Columns["CreatedAt"].HeaderText   = "Oluşturulma Tarihi";
                    dgvVariables.Columns["UpdatedAt"].HeaderText   = "Düzenlenme Tarihi";
                    dgvVariables.Columns["IsActive"].HeaderText    = "Aktiflik";
                    dgvVariables.Columns["IsDeleted"].HeaderText   = "Silinme";
                }
                using (IUnitRepository unitRepo = new UnitRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    var result = unitRepo.GetList();
                    if (result.Result == null)
                    {
                        lblMessage.Text = "Birim bulunamadı.";
                        return;
                    }
                    cmbUnits.DataSource = result.Result;
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = "Hata : " + ex.GetBaseException();
            }
        }
        public void VariableRepositoryTestDefaultSize(short first, short second, bool shouldThrow)
        {
            IVariableRepository sut    = new VariableRepository();
            bool exceptionThrown       = false;
            var  doubleArrayReference  = sut.GetOrCreateVariable("AB", new short[] { 2, 3 });
            var  doubleArrayReference2 = sut.GetOrCreateVariable("AB", new short[] { first, second });

            try
            {
                doubleArrayReference2.SetValue(new Accumulator(2.0));
            }
            catch (ClassicBasic.Interpreter.Exceptions.BadSubscriptException)
            {
                exceptionThrown = true;
            }

            Assert.AreEqual(shouldThrow, exceptionThrown);
        }
Exemplo n.º 26
0
        public ActionResult Edit(long?user_id, long?user_domain)
        {
            using (UserRepository user_repository = new UserRepository())
            {
                ViewBag.user_roles = user_repository.AllUserRoles();

                if (user_id.HasValue)
                {
                    ViewBag.item = user_repository.GetByID(user_id.Value);
                }
            }

            using (DomainRepository domain_repository = new DomainRepository())
            {
                ViewBag.domains = domain_repository.All();
            }

            if (user_id.HasValue && !user_domain.HasValue)
            {
                ViewBag.current_domain_id = ViewBag.item.user_domain;
            }
            else if (user_domain.HasValue)
            {
                ViewBag.current_domain_id = user_domain;
            }
            else
            {
                ViewBag.current_domain_id = ViewBag.domains[0].domain_id;
            }

            using (BlockRepository block_repository = new BlockRepository())
            {
                ViewBag.blocks = block_repository.All(user_domain ?? ViewBag.current_domain_id);
            }

            using (VariableRepository variable_repository = new VariableRepository())
            {
                ViewBag.var_groups = variable_repository.AllGroups(user_domain ?? ViewBag.current_domain_id);
            }



            return(View());
        }
Exemplo n.º 27
0
        public ActionResult Remove(long domain_id)
        {
            using (DomainRepository domain_repository = new DomainRepository())
            {
                domain_repository.Remove(domain_id);

                using (ContentRepository content_repository = new ContentRepository())
                {
                    foreach (var item in content_repository.GetByDomain(domain_id))
                    {
                        ModelUtility.RemoveContent(item.content_id);
                    }
                }

                using (TemplateRepository template_repository = new TemplateRepository())
                {
                    template_repository.RemoveByDomain(domain_id);
                }

                using (ViewRepository view_repository = new ViewRepository())
                {
                    view_repository.RemoveByDomain(domain_id);
                }

                using (BlockRepository block_repository = new BlockRepository())
                {
                    block_repository.RemoveByDomain(domain_id);
                }

                using (VariableRepository variable_repository = new VariableRepository())
                {
                    variable_repository.RemoveByDomain(domain_id);
                }

                using (TagRepository tag_repository = new TagRepository())
                {
                    tag_repository.RemoveByDomain(domain_id);
                }
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 28
0
        public async Task BoardCount(CommandContext ctx, [Description("New limit")] int newCount)
        {
            GoodGuysService.Instance.GoodGuysReactionCount = newCount;

            VariableRepository repo = new VariableRepository(ReadConfig.Config.ConnectionString);

            Variable entity = new Variable {
                ID = 1, Name = "Goodguys", Value = newCount.ToString()
            };

            bool result = repo.Update(entity);

            if (!result)
            {
                await ctx.RespondAsync("Error updating the database entry");

                return;
            }

            await ctx.Channel.SendMessageAsync("Set to " + newCount);
        }
Exemplo n.º 29
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (txtE.Text == String.Empty || txtI.Text == String.Empty || txtL.Text == String.Empty || txtP.Text == String.Empty)
            {
                MessageBox.Show("Hesaplama yapmak için boş alanları doldurunuz.");
                return;
            }
            double E = Convert.ToDouble(txtE.Text),
                   I = Convert.ToDouble(txtI.Text),
                   L = Convert.ToDouble(txtL.Text),
                   P = Convert.ToDouble(txtP.Text);

            if (cmbL.Text == "cm")
            {
                L = L / 100;
            }
            if (cmbP.Text == "N")
            {
                P = P / 1000;
            }
            if (cmbE.Text == "Pa")
            {
                E = E / 1000000;
            }
            if (cmbI.Text == "cm⁴")
            {
                I = I / 100000000;
            }

            double result = CalculateCaseFirst.MidSpanLoad(L, P, E, I);

            txtResult.Text = result + " mm";
            try
            {
                Domain.Model.BeamDeflectionDb.Calculation cal = null;
                using (ICalculationRepository calRepo = new CalculationRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    var calResult = calRepo.Insert(new Domain.Model.BeamDeflectionDb.Calculation
                    {
                        Result    = result,
                        LoadId    = _Load.ID,
                        UserId    = CurrentUser.ID,
                        IsActive  = true,
                        IsDeleted = false,
                        UnitId    = ResultUnit.ID
                    });
                    cal = calResult.Result;
                    var allResult = calRepo.FindList(x => x.UserId == CurrentUser.ID);
                    if (allResult.Result != null)
                    {
                        allResult.Result.Reverse();
                        txtBefore.Text = String.Empty;
                        int count = 0;
                        allResult.Result.ForEach(x => {
                            if (count == 10)
                            {
                                return;
                            }

                            txtBefore.AppendText(x.Result + "\n");

                            count++;
                        });
                    }
                }
                using (IVariableRepository variableRepo = new VariableRepository(new Datacore.Data.BeamDeflectionDbContext()))
                {
                    List <Variable> variables = new List <Variable> {
                        new Variable
                        {
                            Name          = "Span Length",
                            Display       = "L",
                            CalculationId = cal.ID,
                            IsActive      = true,
                            IsDeleted     = false,
                            Value         = Convert.ToDouble(txtL.Text),
                            UnitId        = ((Unit)cmbL.SelectedItem).ID
                        },
                        new Variable
                        {
                            Name          = "Point Load",
                            Display       = "P",
                            CalculationId = cal.ID,
                            IsActive      = true,
                            IsDeleted     = false,
                            Value         = Convert.ToDouble(txtP.Text),
                            UnitId        = ((Unit)cmbP.SelectedItem).ID
                        },
                        new Variable
                        {
                            Name          = "Modules of Elasticity",
                            Display       = "E",
                            CalculationId = cal.ID,
                            IsActive      = true,
                            IsDeleted     = false,
                            Value         = Convert.ToDouble(txtE.Text),
                            UnitId        = ((Unit)cmbE.SelectedItem).ID
                        },
                        new Variable
                        {
                            Name          = "Moment of Inertia",
                            Display       = "I",
                            CalculationId = cal.ID,
                            IsActive      = true,
                            IsDeleted     = false,
                            Value         = Convert.ToDouble(txtI.Text),
                            UnitId        = ((Unit)cmbI.SelectedItem).ID
                        }
                    };
                    variableRepo.InsertList(variables);
                }
            }
            catch (Exception)
            {
                return;
            }
        }
Exemplo n.º 30
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="repositoryBase"></param>
 public void Decorator(VariableRepository repositoryBase)
 {
     Repository = repositoryBase;
 }