Ejemplo n.º 1
0
        public async Task <IActionResult> SearchForLineAsync([FromBody] MN model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            try
            {
                var material = new Material()
                {
                    beton    = new BetonModelEC(model.material.betonClass),
                    armatura = ReinforcementType
                               .GetArmatura()
                               .First(n => n.name == model.material.armtype),
                };

                var geometry = new ElementGeometryWithReinfI()
                {
                    b_eff_top = model.geometry.b_eff,
                    h_f_top   = model.geometry.h_f,
                    b         = model.geometry.b,
                    d1        = model.geometry.d1,
                    d2        = model.geometry.d2,
                    h         = model.geometry.h,
                    As_1      = model.geometry.as1,
                    As_2      = model.geometry.as2,
                };

                var s = new Solver(material, geometry);
                await s.CalcAsync();

                //s.GetWorrnings(model.m, model.n);
                var isValid = s.List.IsMNValid(model.m, model.n);

                var listMaxMin = new List <SectionStrainsModel>();
                listMaxMin.AddRange(
                    s.List
                    .OrderBy(n => Math.Abs(n.M_Rd - model.m))
                    .Take(2)
                    );
                listMaxMin.AddRange(s.List.OrderBy(n => Math.Abs(n.N_Rd - model.n))
                                    .Take(2));

                return(Ok(
                           new
                {
                    extrims = InfoDetailModel.Converts(listMaxMin.ToArray()),
                    isValid = isValid,
                    worrnings = s.Worrnings,
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new { error = ex.Message }));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetListOfAllLines([FromBody] MN model)
        {
            if (model == null)
            {
                Logger.LogError("model not valid");
                throw new System.ArgumentNullException(nameof(model));
            }
            try
            {
                var material = new Material()
                {
                    beton    = new BetonModelEC(model.material.betonClass),
                    armatura = ReinforcementType.GetArmatura().First(n => n.name == model.material.armtype),
                };
                var geometry = new ElementGeometryWithReinfI()
                {
                    b_eff_top = model.geometry.b_eff,
                    h_f_top   = model.geometry.h_f,
                    b         = model.geometry.b,
                    d1        = model.geometry.d1,
                    d2        = model.geometry.d2,
                    h         = model.geometry.h,
                    As_1      = model.geometry.as1,
                    As_2      = model.geometry.as2,
                };
                var s = new Solver(material, geometry);
                await s.CalcAsync(0.5);

                Logger.LogInformation("API send interacion curves");
                return(Ok(s.List.Select(x => new { x = x.M_Rd, y = x.N_Rd })));
            }
            catch (System.Exception ex)
            {
                Logger.LogError("something went wrrong: " + ex.Message);
                return(BadRequest(new { error = ex.Message }));
            }
        }