示例#1
0
        /// <summary>
        /// Deserialize a ResultMap object
        /// </summary>
        /// <param name="node"></param>
        /// <param name="configScope"></param>
        /// <returns></returns>
        public static ResultMap Deserialize(XmlNode node, ConfigurationScope configScope)
        {
            NameValueCollection prop      = NodeUtils.ParseAttributes(node, configScope.Properties);
            ResultMap           resultMap = new ResultMap(configScope, prop["id"], prop["class"], prop["extends"], prop["groupBy"]);

            configScope.ErrorContext.MoreInfo = "initialize ResultMap";

            resultMap.Initialize(configScope);

            return(resultMap);
        }
        public MapResultPage(List <Plugin.Geolocator.Abstractions.Position> newTrening, MapPreparedData newTreningData)
        {
            InitializeComponent();

            resultRoad = new List <Plugin.Geolocator.Abstractions.Position>(newTrening);
            resultData = new MapPreparedData(newTreningData);
            ToolbarItems.RemoveAt(1);
            ToolbarItems.RemoveAt(0);
            ResultMap.DrawRoadAtStart(newTrening);
            ResultMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Xamarin.Forms.Maps.Position(newTrening[(newTrening.Count / 2)].Latitude, newTrening[(newTrening.Count / 2)].Longitude), new Distance(1000)));
        }
示例#3
0
        public void EnsureCapacity(int size)
        {
            // arrange
            var resultMap = new ResultMap();

            // act
            resultMap.EnsureCapacity(size);

            // assert
            Assert.Equal(size, resultMap.Count);
        }
示例#4
0
        public static List <T> Construct <T>(ResultMap results) where T : Model
        {
            List <T> models = new List <T>();

            foreach (Result result in results.Results)
            {
                models.Add(Construct <T>(result));
            }

            return(models);
        }
示例#5
0
        public static List <T> raw <T>(string query, Database db) where T : Model
        {
            ResultMap results = db.ExecuteQuery(query);

            if (results == null)
            {
                return(null);
            }

            return(Construct <T>(results));
        }
示例#6
0
        public JsonResult update(Staff staff)
        {
            Staff s = db.Staffs.Find(staff.staffNum);

            s.name         = staff.name;
            s.position     = staff.position;
            s.sex          = staff.sex;
            s.age          = staff.age;
            s.contractInfo = staff.contractInfo;
            db.SaveChanges();
            return(Json(ResultMap.OK(s), JsonRequestBehavior.AllowGet));
        }
示例#7
0
        public JsonResult reset(String studentNum)
        {
            User user = db.Users.Find(studentNum);

            if (user == null)
            {
                return(Json(ResultMap.errorMsg("没有这个用户"), JsonRequestBehavior.AllowGet));
            }
            user.password = studentNum;
            db.SaveChanges();
            return(Json(ResultMap.OK(), JsonRequestBehavior.AllowGet));
        }
示例#8
0
        public List <T> Get(Dictionary <string, object> parameters)
        {
            selectInstance.Conditions.AddRange(base.Conditions);
            ResultMap results = selectInstance.Execute(parameters);

            if (results == null)
            {
                return(null);
            }

            return(Model.Construct <T>(results));
        }
示例#9
0
        /// <summary>
        /// Builds the result maps.
        /// </summary>
        /// <param name="store">The store.</param>
        private void BuildResultMaps(IConfigurationStore store)
        {
            for (int i = 0; i < store.ResultMaps.Length; i++)
            {
                ResultMap resultMap = ResultMapDeSerializer.Deserialize(
                    store.ResultMaps[i],
                    modelStore.DataExchangeFactory,
                    waitResultPropertyResolution,
                    waitDiscriminatorResolution);

                modelStore.AddResultMap(resultMap);
            }
        }
示例#10
0
        private static QueryResultBuilder ExtractResult(
            IDictionary <string, string> aliases,
            IQueryResult mergedResult,
            ICollection <IError> handledErrors)
        {
            var result = QueryResultBuilder.New();

            if (mergedResult.Data is not null)
            {
                var data = new ResultMap();
                data.EnsureCapacity(aliases.Count);
                var i = 0;

                foreach (KeyValuePair <string, string> alias in aliases)
                {
                    if (mergedResult.Data.TryGetValue(alias.Key, out object?o))
                    {
                        data.SetValue(i++, alias.Value, o);
                    }
                }

                result.SetData(data);
            }

            if (mergedResult.Errors is not null)
            {
                foreach (IError error in mergedResult.Errors)
                {
                    if (TryResolveField(error, aliases, out string?responseName))
                    {
                        handledErrors.Add(error);
                        result.AddError(RewriteError(error, responseName));
                    }
                }
            }

            if (mergedResult.Extensions is not null)
            {
                result.SetExtensions(mergedResult.Extensions);
            }

            if (mergedResult.ContextData is not null)
            {
                foreach (KeyValuePair <string, object?> item in mergedResult.ContextData)
                {
                    result.SetContextData(item.Key, item.Value);
                }
            }

            return(result);
        }
示例#11
0
        public void TestMySQLSelect()
        {
            MySQLSelect select = (MySQLSelect)Connection.Select("players");

            // WHERE player_id > 1 AND (balance > 50 OR balance = 0)
            select.Where("player_id", ">", 1)
            .Where(new ConditionBuilder()
                   .Where("balance", ">", 50)
                   .OrWhere("balance", 0)
                   );

            ResultMap results = select.Execute();

            PrintResult(results);
        }
示例#12
0
        private ResultMap RunExperiment <T>(GeneticAlgorithm <T> alg, int runs = 25) where T : IGenome
        {
            ResultMap res_list = new ResultMap();

            foreach (int pop_size in PopulationSizes)
            {
                res_list.Add(pop_size, new InnerResultList());
                for (int i = 0; i < runs; ++i)
                {
                    res_list[pop_size].Add(alg.start(pop_size, int.MaxValue, true));
                }
            }

            return(res_list);
        }
        public void BuildResult_SimpleResultSet_SnapshotMatches()
        {
            // arrange
            var       helper = new ResultHelper(CreatePool());
            ResultMap map    = helper.RentResultMap(1);

            map.SetValue(0, "abc", "def", false);
            helper.SetData(map);

            // act
            IReadOnlyQueryResult result = helper.BuildResult();

            // assert
            result.ToJson().MatchSnapshot();
        }
示例#14
0
    public override int GetHashCode()
    {
        int hash = 1;

        hash ^= ResultMap.GetHashCode();
        if (Answer.Length != 0)
        {
            hash ^= Answer.GetHashCode();
        }
        if (Status != 0)
        {
            hash ^= Status.GetHashCode();
        }
        return(hash);
    }
示例#15
0
        public JsonResult getWE(String studentNum)
        {
            //查找学生宿舍信息
            Student student = db.Students.Find(studentNum);

            if (student == null)
            {
                return(Json(ResultMap.errorMsg("查无此人,请确认学号是否正确"), JsonRequestBehavior.AllowGet));
            }
            //根据楼号宿舍号查找该宿舍所有
            var ds = from item in db.WaterElectricityCosts
                     where item.buildingNum == student.buildingNum && item.dormitoryNum == student.dormitoryNum //此处可以写条件表达式  升序
                     orderby item.month ascending
                     select item;

            return(Json(ResultMap.OK(ds.ToList()), JsonRequestBehavior.AllowGet));
        }
示例#16
0
        private void BuildResultMap(XmlElement xmlNode)
        {
            xmlNode.Attributes.TryGetValueAsString(nameof(ResultMap.Id), out var id, SmartSqlConfig.Properties);
            ResultMap resultMap = new ResultMap
            {
                Id         = id,
                Properties = new Dictionary <string, Property>()
            };

            if (resultMap.Id.IndexOf('.') < 0)
            {
                resultMap.Id = $"{SqlMap.Scope}.{resultMap.Id}";
            }
            BuildResultCtor(xmlNode, resultMap);
            BuildResultProperty(xmlNode, resultMap);
            SqlMap.ResultMaps.Add(resultMap.Id, resultMap);
        }
 public ResolverTaskDefinition(
     IOperationContext operationContext,
     IPreparedSelection selection,
     int responseIndex,
     ResultMap resultMap,
     object?parent,
     Path path,
     IImmutableDictionary <string, object?> scopedContextData)
 {
     OperationContext  = operationContext;
     Selection         = selection;
     ResponseIndex     = responseIndex;
     ResultMap         = resultMap;
     Parent            = parent;
     Path              = path;
     ScopedContextData = scopedContextData;
 }
示例#18
0
        public void GetValue_ValueIsFound(int capacity)
        {
            // arrange
            var resultMap = new ResultMap();

            resultMap.EnsureCapacity(capacity);
            resultMap.SetValue(0, "abc", "def");
            resultMap.SetValue(1, "def", "def");
            resultMap.SetValue(2, "ghi", "def");

            // act
            ResultValue value = resultMap.GetValue("def", out int index);

            // assert
            Assert.Equal("def", value.Name);
            Assert.Equal(1, index);
        }
示例#19
0
        public JsonResult update(Student student)
        {
            //try懒得写了
            Student s = db.Students.Find(student.studentNum);

            if (s == null)
            {
                return(Json(ResultMap.errorMsg("查无此人,请确认学号是否正确"), JsonRequestBehavior.AllowGet));
            }
            //s = student;   不能直接赋值会修改s的引用,导致save操作没办法更新
            s.major        = student.major;
            s.name         = student.name;
            s.sex          = student.sex;
            s.contractInfo = student.contractInfo;
            db.SaveChanges();
            return(Json(ResultMap.OK(s), JsonRequestBehavior.AllowGet));
        }
示例#20
0
        public void SetValue()
        {
            // arrange
            var resultMap = new ResultMap();

            resultMap.EnsureCapacity(1);

            // act
            resultMap.SetValue(0, "abc", "def");

            // assert
            Assert.Collection(
                (IEnumerable <ResultValue>)resultMap,
                t =>
            {
                Assert.Equal("abc", t.Name);
                Assert.Equal("def", t.Value);
            });
        }
示例#21
0
        public bool Save()
        {
            ModelInfo info = GetInfo(this.GetType());

            string[] fields = info.Fillables.Select <ModelField, String>(x => x.GetField()).ToArray();
            object[] values = info.Fillables.Select <ModelField, Object>(x => x.GetValue(this)).ToArray();

            if (info.PrimaryField != null)
            {
                object primaryVal = info.PrimaryField.GetInfo().GetValue(this);
                if (primaryVal != null)
                {
                    SQLUpdate update = Database.PrimaryDB.Update(info.Table.Name)
                                       .Where(info.PrimaryField.GetField(), primaryVal);

                    for (int i = 0; i < fields.Count(); i++)
                    {
                        update.Set(fields[i], values[i]);
                    }

                    return(update.Execute());
                }
            }

            bool result = Database.PrimaryDB.Insert(info.Table.Name, fields)
                          .Values(values)
                          .Execute();

            if (!result || info.PrimaryField == null)
            {
                return(result);
            }

            ResultMap results = Database.PrimaryDB.ExecuteQuery("SELECT LAST_INSERT_ID() as id;");

            if (results == null)
            {
                return(false);
            }

            info.PrimaryField.SetValue(this, results.Results[0].Get("id"));
            return(true);
        }
示例#22
0
        public JsonResult login(User user)
        {
            if (ModelState.IsValid)
            {
                var u = db.Users.Find(user.username);
                //if(user)

                /*if (u == null) {
                 *  var error = "账号密码不匹配,请检查";
                 * }
                 *  return Json()*/
                //Console.WriteLine("方法执行" + user.password);
                if (u == null)
                {
                    return(Json(ResultMap.errorMsg("用户不存在"), JsonRequestBehavior.AllowGet));
                }
                else if (u.password != user.password && u.type == user.type)
                {
                    return(Json(ResultMap.errorMsg("密码错误或者类型错误"), JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(ResultMap.OK(), JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                StringBuilder errMsg = new StringBuilder();
                //获取错误信息并返回
                var values = ModelState.Values;

                foreach (var item in values)
                {
                    foreach (var error in item.Errors)
                    {
                        errMsg.Append(error.ErrorMessage + " ");
                    }
                }
                //ResultMap.errorMsg(errMsg.ToString())
                return(Json(ResultMap.errorMsg(errMsg.ToString()), JsonRequestBehavior.AllowGet));
            }
        }
示例#23
0
    /// <inheritdoc/>
    public async Task <IQueryResult?> ExecuteAsync(IOperationContext operationContext)
    {
        operationContext.QueryPlan = operationContext.QueryPlan.GetDeferredPlan(Fragment.Id);

        ResultMap resultMap = EnqueueResolverTasks(
            operationContext,
            Fragment.SelectionSet,
            Parent,
            Path,
            ScopedContextData);

        await operationContext.Scheduler.ExecuteAsync().ConfigureAwait(false);

        return(operationContext
               .TrySetNext(true)
               .SetLabel(Label)
               .SetPath(Path)
               .SetData(resultMap)
               .BuildResult());
    }
示例#24
0
        private ResultMap[] BuildResolverResults()
        {
            var i       = 0;
            var results = new ResultMap[_resolverRecords.Count];

            foreach (ApolloTracingResolverRecord record in _resolverRecords)
            {
                var result = new ResultMap();
                result.EnsureCapacity(6);
                result.SetValue(0, ApolloTracingResultKeys.Path, record.Path);
                result.SetValue(1, ParentType, record.ParentType);
                result.SetValue(2, FieldName, record.FieldName);
                result.SetValue(3, ReturnType, record.ReturnType);
                result.SetValue(4, StartOffset, record.StartTimestamp - _startTimestamp);
                result.SetValue(5, Duration, record.EndTimestamp - record.StartTimestamp);
                results[i++] = result;
            }

            return(results);
        }
示例#25
0
        public ResultMap MapCommandResult(MySqlCommand command)
        {
            try {
                using (MySqlDataReader reader = command.ExecuteReader()) {
                    List <ResultMap> results = new List <ResultMap>();

                    //Ensures last result is selected
                    bool nextResult = true;
                    while (nextResult)
                    {
                        String[] headers = new String[reader.FieldCount];
                        Type[]   types   = new Type[reader.FieldCount];

                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            headers[i] = reader.GetName(i);
                            types[i]   = reader.GetFieldType(i);
                        }

                        ResultMap map = new ResultMap(headers, types);
                        while (reader.Read())
                        {
                            object[] values = new object[reader.FieldCount];
                            reader.GetValues(values);

                            map.AddResult(values);
                            Console.WriteLine();
                        }

                        nextResult = reader.NextResult();
                        results.Add(map);
                    }

                    //Select Last in Query
                    return(results[results.Count - 1]);
                }
            } catch (Exception e) {
                Logger.Warning("Failed to execute Query", this.exception = e);
                return(null);
            }
        }
示例#26
0
    private static async Task <IQueryResult> ExecuteInternalAsync(
        IOperationContext operationContext,
        IImmutableDictionary <string, object?> scopedContext)
    {
        ISelectionSet rootSelections =
            operationContext.Operation.GetRootSelectionSet();

        ResultMap resultMap = EnqueueResolverTasks(
            operationContext,
            rootSelections,
            operationContext.RootValue,
            Path.Root,
            scopedContext);

        await operationContext.Scheduler.ExecuteAsync().ConfigureAwait(false);

        return(operationContext
               .TrySetNext()
               .SetData(resultMap)
               .BuildResult());
    }
示例#27
0
 public void Initialize(
     IOperationContext operationContext,
     IPreparedSelection selection,
     ResultMap resultMap,
     int responseIndex,
     object?parent,
     Path path,
     IImmutableDictionary <string, object?> scopedContextData)
 {
     _task             = default;
     _operationContext = operationContext;
     _selection        = selection;
     _context.Initialize(
         operationContext,
         selection,
         resultMap,
         responseIndex,
         parent,
         path,
         scopedContextData);
 }
 public JsonResult quit(String studentNum)
 {
     try
     {
         //得到学生对象
         Student student = db.Students.Find(studentNum);
         User    user    = db.Users.Find(studentNum);//学生学号为登录名
         //得到对应宿舍对象
         Dormitory dormitory = db.Dormitories.Find(student.dormitoryNum, student.buildingNum);
         dormitory.residentNum = dormitory.residentNum - 1;
         //删除学生记录  删除学生账号
         db.Students.Remove(student);
         db.Users.Remove(user);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         return(Json(ResultMap.errorMsg("数据库异常,请稍后再试"), JsonRequestBehavior.AllowGet));
     }
     return(Json(ResultMap.OK(), JsonRequestBehavior.AllowGet));
 }
 public void Initialize(
     IOperationContext operationContext,
     ISelection selection,
     ResultMap resultMap,
     int responseIndex,
     object?parent,
     Path path,
     IImmutableDictionary <string, object?> scopedContextData)
 {
     _operationContext = operationContext;
     _services         = operationContext.Services;
     _selection        = selection;
     ResultMap         = resultMap;
     ResponseIndex     = responseIndex;
     _parent           = parent;
     _parser           = _operationContext.Services.GetRequiredService <InputParser>();
     Path = path;
     ScopedContextData = scopedContextData;
     LocalContextData  = ImmutableDictionary <string, object?> .Empty;
     Arguments         = _selection.Arguments;
     RequestAborted    = _operationContext.RequestAborted;
 }
示例#30
0
 public bool Equals(UserQuestionnaireInfoPB other)
 {
     if (ReferenceEquals(other, null))
     {
         return(false);
     }
     if (ReferenceEquals(other, this))
     {
         return(true);
     }
     if (!ResultMap.Equals(other.ResultMap))
     {
         return(false);
     }
     if (Answer != other.Answer)
     {
         return(false);
     }
     if (Status != other.Status)
     {
         return(false);
     }
     return(true);
 }