예제 #1
0
 public HybrydClass(SoilSample soil, AttenbergLimits attenberg, string mainClass, double uniformity)
 {
     _mainClass  = mainClass;
     _uniformity = uniformity;
     _soil       = soil;
     _attenberg  = attenberg;
 }
예제 #2
0
        public HttpResponseMessage GetSamples()
        {
            var        repo = new SoilSampleRepository();
            SoilSample usr  = repo.GetEager(1);

            usr.User        = null;
            usr.User.Sample = null;
            usr.SieveParameter.SoilSample = null;

            var ddd = Request.Headers.GetCookies();



            if (usr == null)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }
            else
            {
                var response = Request.CreateResponse(HttpStatusCode.OK, usr);
                var cookie   = new CookieHeaderValue("Session-id", "12345");
                cookie.Domain = Request.RequestUri.Host;
                cookie.Path   = "/";
                //cookie.
                response.Headers.AddCookies(new CookieHeaderValue[] { cookie });


                return(response);
            }
        }
예제 #3
0
 public SieveParametersManager(SoilSample _soil)
 {
     Soil        = _soil;
     FinesSize   = 0.063;
     _estimator  = new TwoPointEstimator();
     _derivative = new Derivative(x => _estimator.Estimate(x), 0.00001);
     WithUpdate  = true;
 }
예제 #4
0
        /*
         * public double GetFines(SoilSample input)
         * {
         *  if (input.SieveParameter.FineGrainSize != 0.075)
         *  {
         *      var sieveManager = new SieveParametersManager(input) { WithUpdate = false, FinesSize = 0.075 };
         *      return sieveManager.GetSieveParameters().FineGrainAmount;
         *  }
         *  else
         *  {
         *      return input.SieveParameter.FineGrainAmount;
         *  }
         * }*/

        public double GetGrain(SoilSample input, double grain)
        {
            var sieveManager = new SieveParametersManager(input)
            {
                WithUpdate = false, FinesSize = 0.075
            };

            return(sieveManager.EstimateGrain(grain));
        }
예제 #5
0
        public string StartClassification(SoilSample input, double determinant)
        {
            var actions = _classifies.Zip(_ranges, (x, y) => new { range = y, actionClass = x }).OrderBy(n => n.range);

            foreach (var action in actions)
            {
                if (determinant < action.range)
                {
                    return(action.actionClass.GetClass());
                }
            }
            return(_classifies.Last().GetClass());
        }
예제 #6
0
        public SizeClass(SoilSample soil, double grain, IEnumerable <IClassify <string> > classifies, IEnumerable <double> ranges)
        {
            var a = ranges.Count();
            var b = classifies.Count();

            if (ranges.Count() + 1 == classifies.Count())
            {
                _classifies = classifies;
                _ranges     = ranges;
                _soil       = soil;
                _grain      = grain;
            }
            else
            {
                throw new System.Exception();
            }
        }
예제 #7
0
 public BasicClassificationManager(SoilSample soil, AttenbergLimits limits)
 {
     SoilSample      = soil;
     AttenbergLimits = limits;
 }
예제 #8
0
 public GradeClass(SoilSample soil, string mainClass, double uniformity)
 {
     _mainClass  = mainClass;
     _uniformity = uniformity;
     _soil       = soil;
 }