public async Task <IHttpActionResult> PostModelMember(ModelMember modelMember) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Members.Add(modelMember); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (ModelMemberExists(modelMember.MemberId)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = modelMember.MemberId }, modelMember)); }
private List <QueryParameter> GetInMemoryFilterQueryParameters() { var modelMembers = new List <ModelMember>(); _expressions.ForEach(expression => { MemberExpression memberExpression = expression.Body as MemberExpression ?? (expression.Body as UnaryExpression)?.Operand as MemberExpression; if (memberExpression != null) { // Find the member. var rawMemberExpression = memberExpression.ToString(); var depth = rawMemberExpression.Count(x => x == '.'); string path = depth > 1 ? rawMemberExpression.Substring(rawMemberExpression.IndexOf('.') + 1) : memberExpression.Member.Name; var member = _accessor.GetMembers().ToList().Single(x => x.Name == (depth > 1 ? path.Substring(0, path.IndexOf('.')) : memberExpression.Member.Name)); var modelMember = new ModelMember(_type, _accessor, member, false); _modelMemberList.Add(modelMember); modelMembers.Add(modelMember); } }); return(modelMembers.Select(m => new QueryParameter { MemberModel = m }).ToList()); }
public async Task <IHttpActionResult> PutModelMember(Guid id, ModelMember modelMember) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != modelMember.MemberId) { return(BadRequest()); } db.Entry(modelMember).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ModelMemberExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IEnumerable <ConnectionBuilder <ModelConventionType <TSource>, object> > GetConnectionBuilderArguments <TSource>( ModelMember modelMember, ConnectionBuilder <ModelConventionType <TSource>, object> connectionBuilder) { return(new List <ConnectionBuilder <ModelConventionType <TSource>, object> > { GetConnectionBuilderArgument(modelMember, connectionBuilder) }); }
protected override bool ShouldSerialize(ModelMember member) { if (member is Column column) { return(_columns.Contains(column)); } return(member is ColumnList || member is Projection); }
public IEnumerable <ConnectionBuilder <object> > GetConnectionBuilderArguments( ModelMember modelMember, ConnectionBuilder <object> connectionBuilder) { return(new List <ConnectionBuilder <object> > { GetConnectionBuilderArgument(modelMember, connectionBuilder) }); }
protected override bool ShouldSerialize(ModelMember member) { if (member is Column column) { return(column.IsSupported()); } return(true); }
public void DoNotUseNullWhenOptionalIsTrueButAttributeFlagIsNotSet() { var ta = TypeAccessor.Create(typeof(DtoWithOptional2)); var modelMember = new ModelMember(null, null, ta.GetMembers().Single(), true); modelMember.UseNullWhenOptional().ShouldBeFalse(); }
public static void Verify(this Column column, Model model, Type declaringType, string name, Type originalDeclaringType, string originalName) { ModelMember modelProperty = column; modelProperty.Verify(model, declaringType, name); Assert.AreEqual(originalDeclaringType, column.OriginalDeclaringType); Assert.AreEqual(originalName, column.OriginalName); }
public ConnectionBuilder <object> GetConnectionBuilderArgument( ModelMember modelMember, ConnectionBuilder <object> connectionBuilder) { return(modelMember.IsOptional ? connectionBuilder.Argument <ModelConventionInputType <StringEqualFilter> >(modelMember.Name, modelMember.Description) : connectionBuilder.Argument <NonNullGraphType <ModelConventionInputType <StringEqualFilter> > >(modelMember.Name, modelMember.Description)); }
public async Task <IHttpActionResult> GetModelMember(Guid id) { ModelMember modelMember = await db.Members.FindAsync(id); if (modelMember == null) { return(NotFound()); } return(Ok(modelMember)); }
ClientItem CheckUserExist(ModelMember member) { foreach (ClientItem item in clientList) { if (item.clientMember.netname == member.netname) { return(item); } } return(null); }
public void CanHandleSearchModelFilters() { Type t = typeof(SearchModel); TypeAccessor ta = TypeAccessor.Create(t); var member = ta.GetMembers().ToList().Single(x => x.Name == "Filters"); var filtersMemberModel = new ModelMember(null, null, member, false); var qa = new SearchFilterModelQueryArgument(); qa.CanHandle(filtersMemberModel).ShouldBeTrue(); }
public IEnumerable <QueryArgument> GetArguments(ModelMember modelMember) { return(new List <QueryArgument> { new QueryArgument <ListGraphType <ModelConventionInputType <FieldNameValueFilter> > > { Name = modelMember.Name, Description = modelMember.Description } }); }
ClientItem GetUser(ModelMember member) { foreach (ClientItem ci in clientList) { if (ci.clientMember.netname == member.netname && ci.clientMember.ipaddress == member.ipaddress) { return(ci); } } return(null); }
protected internal override bool ShouldSerialize(ModelMember member) { for (int i = 0; i < _filters.Length; i++) { if (!_filters[i].ShouldSerialize(member)) { return(false); } } return(true); }
private QueryArgument GetArgument(ModelMember modelMember) { return(modelMember.IsOptional ? (QueryArgument) new QueryArgument <ModelConventionInputType <DateFilter> > { Name = modelMember.Name, Description = modelMember.Description } : new QueryArgument <NonNullGraphType <ModelConventionInputType <DateFilter> > > { Name = modelMember.Name, Description = modelMember.Description }); }
private void SendOneDatagram() { int maxLength = int.Parse(cb_MaxDatagramSize.Text) * 10240; Random rnd = new Random(); int datagramLength = rnd.Next(1, maxLength); //就这里,弄个类的序列化。 DbTools db = new DbTools(); ModelMember m = new ModelMember(); m.email = "赵钦@sina.com"; m.hdinfo = HardWare.getHardCode(); m.logintime = DateTime.Now; string datagramText = db.ClasstoString(m, "VCDS"); datagramText = "<" + datagramText + ">"; //if (ck_ErrorDatagram.Checked && datagramLength < maxLength * 0.20) // 产生一个无 > 的包 //{ // datagramText = "<" + tb_ClientName.Text.Trim() + ",".PadRight(datagramLength, 'a'); //} else if (ck_ErrorDatagram.Checked && datagramLength > maxLength * 0.80) // 产生一个无 < 的包 //{ // datagramText = tb_ClientName.Text.Trim() + ",".PadRight(datagramLength, 'a') + ">"; //} else // 正常包 //{ // string header = "<" + tb_ClientName.Text.Trim() + ","; // string tailer = ",".PadRight(datagramLength, 'a') + ">"; // datagramText = header + (header.Length + tailer.Length + 10).ToString("0000000000") + tailer; // 第二个字节是长度 //} byte[] datagram = Encoding.ASCII.GetBytes(datagramText); try { m_socketClient.Client.Send(datagram); this.RefreshSendCount(); this.AddInfo("send text len = " + datagramText.Length.ToString()); if (ck_AsyncReceive.Checked) // 异步接收回答 { m_socketClient.Client.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, SocketFlags.None, this.EndReceiveDatagram, this); } else { this.Receive(); } } catch (Exception err) { this.AddInfo("send exception: " + err.Message); this.CloseClientSocket(); } }
public async Task <IHttpActionResult> DeleteModelMember(Guid id) { ModelMember modelMember = await db.Members.FindAsync(id); if (modelMember == null) { return(NotFound()); } db.Members.Remove(modelMember); await db.SaveChangesAsync(); return(Ok(modelMember)); }
public QueryArgument GetArgument(ModelMember modelMember) { return(modelMember.IsOptional ? new QueryArgument <ModelConventionInputType <StringEqualFilter> > { Name = modelMember.Name, Description = modelMember.Description } : (QueryArgument) new QueryArgument <NonNullGraphType <ModelConventionInputType <StringEqualFilter> > > { Name = modelMember.Name, Description = modelMember.Description }); }
public IEnumerable <QueryArgument> GetArguments(ModelMember modelMember) { return(new List <QueryArgument> { GetArgument(modelMember) }); }
private ConnectionBuilder <ModelConventionType <TSource>, object> GetConnectionBuilderArgument <TSource>(ModelMember modelMember, ConnectionBuilder <ModelConventionType <TSource>, object> connectionBuilder) { return(modelMember.IsOptional ? connectionBuilder.Argument <ModelConventionInputType <GuidFilter> >(modelMember.Name, modelMember.Description) : connectionBuilder.Argument <NonNullGraphType <ModelConventionInputType <GuidFilter> > >(modelMember.Name, modelMember.Description)); }
public ContextValue GetContextValue(IResolveFieldContext <object> context, ModelMember modelMember, ContextValueSetRule rule) { var name = modelMember.Name; var contextValue = new ContextValue(); if (rule == null || !rule.DisableSetSelectValues) { contextValue.PopulateSelectValues(context); } if (context.Arguments == null) { return(contextValue); } var args = context.Arguments; if (args.ContainsKey(name)) { if (args[name] is Dictionary <string, object> arg) { if (modelMember.IsGuid) { contextValue.Values = new List <object> { Guid.Parse(arg.First().Value.ToString()) }; } else { var val = arg.First().Value; if (modelMember.IsOptional && modelMember.UseNullWhenOptional() && val == null) { return(contextValue); } contextValue.Values = new List <object> { val }; } if (contextValue.Values == null) { throw new ArgumentNullException($"{name}.Value"); } string comparison = arg.First().Key; if (comparison == Constants.Equal) { contextValue.Comparison = Comparisons.Equal; return(contextValue); } if (comparison == Constants.Contains && contextValue.GetFirstValue() is string) { contextValue.Comparison = Comparisons.StringContains; return(contextValue); } if (comparison == Constants.StartsWith && contextValue.GetFirstValue() is string) { contextValue.Comparison = Comparisons.StringStartsWith; return(contextValue); } if (comparison == Constants.EndsWith && contextValue.GetFirstValue() is string) { contextValue.Comparison = Comparisons.StringEndsWith; return(contextValue); } if (comparison == Constants.NotEqual && ( contextValue.GetFirstValue() is int || contextValue.GetFirstValue() is DateTime)) { contextValue.Comparison = Comparisons.NotEqual; return(contextValue); } if (comparison == Constants.GreaterThan && ( contextValue.GetFirstValue() is int || contextValue.GetFirstValue() is DateTime)) { contextValue.Comparison = Comparisons.GreaterThan; return(contextValue); } if (comparison == Constants.GreaterEqualThan && ( contextValue.GetFirstValue() is int || contextValue.GetFirstValue() is DateTime)) { contextValue.Comparison = Comparisons.GreaterEqualThan; return(contextValue); } if (comparison == Constants.LessThan && ( contextValue.GetFirstValue() is int || contextValue.GetFirstValue() is DateTime)) { contextValue.Comparison = Comparisons.LessThan; return(contextValue); } if (comparison == Constants.LessEqualThan && ( contextValue.GetFirstValue() is int || contextValue.GetFirstValue() is DateTime)) { contextValue.Comparison = Comparisons.LessEqualThan; return(contextValue); } throw new NotImplementedException($"Comparison: {comparison} is not implemented for type {contextValue.GetFirstValue().GetType().Name}."); } if (args[name] is IEnumerable <object> listArg) { var searchFilterModels = new List <object>(); foreach (Dictionary <string, object> item in listArg) { if (item.ContainsKey(Constants.FieldName) && item.ContainsKey(Constants.FieldValue)) { searchFilterModels.Add(new SearchFilterModel { FieldName = (string)item[Constants.FieldName], Value = (string)item[Constants.FieldValue], Comprison = (Comparisons)(int)item[Constants.Comparison] }); } } contextValue.Values = searchFilterModels; return(contextValue); } if (args[name] is null) { return(contextValue); } throw new NotImplementedException($"{name} type not supported."); } return(contextValue); }
public static FieldInformation ConstructFieldInformation(ModelMember member, object defaultInstance) { object[] attributes = member.GetCustomAttributes(false); string[] attributeIds = new string[attributes.Length]; for (int i = 0; i < attributes.Length; i++) { attributeIds[i] = attributes.GetType().Name; } FieldInformation fieldInformation; if (typeof(InputSocket).IsAssignableFrom(member.ValueType)) { fieldInformation = new FieldInformation() { Type = "InputSocket", Attributes = attributeIds, DefaultValue = new JValue((object)null), Format = FieldFormat.Object, }; } else { object defaultValue = null; if (defaultInstance != null) { defaultValue = member.GetValue(defaultInstance); } string typeName = member.ValueType.Name; try { fieldInformation = new FieldInformation { Type = typeName, Attributes = attributeIds, DefaultValue = new JValue(defaultValue), Format = FieldFormat.Object, }; } catch { fieldInformation = new FieldInformation { Type = typeName, Attributes = attributeIds, DefaultValue = JObject.FromObject(defaultValue), Format = FieldFormat.Object, }; } if (typeof(IDictionary).IsAssignableFrom(member.ValueType)) { fieldInformation.Format = FieldFormat.Dictionary; fieldInformation.Type = member.ValueType.GetGenericArguments()[1].Name; fieldInformation.ValueFormat = new FieldInformation() { Type = member.ValueType.GetGenericArguments()[1].Name, Format = FieldFormat.Object }; } else if (member.ValueType.IsArray) { var elementType = member.ValueType.GetElementType(); fieldInformation.Format = FieldFormat.List; fieldInformation.Type = elementType.Name; fieldInformation.ValueFormat = new FieldInformation() { Type = elementType.Name, Format = FieldFormat.Object }; } else if (member.ValueType.IsGenericType && !member.ValueType.IsGenericTypeDefinition && member.ValueType.GetGenericTypeDefinition() == typeof(List <>)) { var elementType = member.ValueType.GenericTypeArguments[0]; fieldInformation.Format = FieldFormat.List; fieldInformation.Type = elementType.Name; fieldInformation.ValueFormat = new FieldInformation() { Type = elementType.Name, Format = FieldFormat.Object }; } else { fieldInformation.Format = FieldFormat.Object; } } return(fieldInformation); }
public bool CanHandle(ModelMember modelMember) { return(modelMember.IsDate); }
public IEnumerable <ConnectionBuilder <ModelConventionType <TSource>, object> > GetConnectionBuilderArguments <TSource>(ModelMember modelMember, ConnectionBuilder <ModelConventionType <TSource>, object> connectionBuilder) { throw new System.NotImplementedException(); }
public bool CanHandle(ModelMember modelMember) { return(modelMember.Member.Type == typeof(List <SearchFilterModel>)); }
/// <summary> /// 接收消息 /// </summary> /// <param name="clientSocket"></param> private static void ReceiveMessage(object clientSocket) { Program p = new Program(); Socket myClientSocket = (Socket)clientSocket; byte[] mmbytes = SocketHelper.ReceiveVarData(myClientSocket); ModelMember member = null; try { member = (ModelMember)db.BytetoClass(mmbytes, "VCDS"); string ipaddress = IPAddress.Parse(((IPEndPoint)myClientSocket.RemoteEndPoint).Address.ToString()).ToString(); switch (member.strCommand) { case "login": EchoHelper.Echo("接收客户端(" + ipaddress + ")登录名:" + member.netname + "密码:" + member.netpass, "接收信息", EchoHelper.EchoType.普通信息); //用户cookies服务器端验证。 if (p.ValidateUser(ref member)) { member.strCommand = "login"; member.bLoginSuccess = true; } else { member.strCommand = "exit"; member.bLoginSuccess = false; } ClientItem tmp = null; if ((tmp = p.CheckUserExist(member)) != null && member.bLoginSuccess && member.ipaddress != tmp.clientMember.ipaddress) { //此时用户名和密码同时相同,开始踢客户端. tmp.clientMember.strCommand = "exit"; tmp.clientMember.strMessage = "您的账户在另一地点登录:" + ipaddress + ",您被迫下线!建议您修改密码!"; byte[] senddata = db.ClasstoByte(tmp.clientMember, "VCDS"); if (!tmp.clientSocket.Connected) { tmp.clientSocket.Connect(tmp.clientSocket.RemoteEndPoint); } member = tmp.clientMember.CopyTo(); //删除前一客户端 clientList.Remove(tmp); EchoHelper.Echo(member.netname + "(" + member.ipaddress + "),被踢下线了!", "用户验证", EchoHelper.EchoType.错误信息); SocketHelper.SendVarData(tmp.clientSocket, senddata); tmp.clientSocket.Shutdown(SocketShutdown.Both); tmp.clientSocket.Close(); } //记录当前客户端. member.ipaddress = ipaddress; ClientItem cur = new ClientItem() { clientMember = member, clientSocket = myClientSocket }; byte[] curdata = db.ClasstoByte(member, "VCDS"); SocketHelper.SendVarData(myClientSocket, curdata); if (member.bLoginSuccess) { clientList.Add(cur); } break; case "closeform": member.ipaddress = ipaddress; if ((tmp = p.GetUser(member)) != null) { clientList.Remove(tmp); EchoHelper.Echo(member.netname + "(" + member.ipaddress + "),下线了.", "用户验证", EchoHelper.EchoType.任务信息); //member.strCommand = "quit"; //byte[] quitdatas = db.ClasstoByte(member, "VCDS"); //SocketHelper.SendVarData(tmp.clientSocket, quitdatas); } break; default: break; } } catch (Exception ex) { EchoHelper.Echo("quit" + ex.Message, "exception", EchoHelper.EchoType.异常信息); } }
public bool CanHandle(ModelMember modelMember) { return(modelMember.IsGuid); }
private bool ValidateUser(ref ModelMember member) { member.IS_X_PostKing = false; //验证是否具有发帖权限 string testpostUrl = "http://www.renzhe.org/forum.php?mod=post&action=newthread&fid=36"; string html = new xkHttp().httpGET(testpostUrl, ref member.cookies); if (html.Contains("发表帖子 - 忍者X2站群 - 忍者软件")) { EchoHelper.Echo("恭喜您,权限核对成功,您已被授权使用忍者X2站群!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "恭喜您,权限核对成功,您已被授权使用忍者X2站群!"; member.IS_X_PostKing = true; } else if (html.Contains("抱歉,您需要设置自己的头像后才能进行本操作")) { EchoHelper.Echo("请完善您的(基本资料、头像),即在论坛上发个帖子激活一下。授权论坛:www.renzhe.org!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "请完善您的(基本资料、头像),即在论坛上发个帖子激活一下。授权论坛:www.renzhe.org!"; } else if (html.Contains("请先绑定手机号码")) { EchoHelper.Echo("请先绑定手机号码,授权论坛:www.renzhe.org!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "请先绑定手机号码,授权论坛:www.renzhe.org!"; } else if (html.Contains("<s>商业授权用户</s>")) { EchoHelper.Echo("您的账户已过期,请到论坛充值续费!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "您的账户已过期,请到论坛充值续费!"; } else if (html.Contains("超时")) { EchoHelper.Echo("链接服务超时!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "链接服务超时!"; } else if (html.Contains("没有权限在该版块发帖")) { EchoHelper.Echo("用户登录验证失败,请重新登录!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "用户登录验证失败,请重新登录!"; } else if (html.Contains("无法解析此远程名称")) { EchoHelper.Echo("域名解析出现问题,请检查您的网络设置!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "域名解析出现问题,请检查您的网络设置!"; } else { EchoHelper.Echo("验证失败,原因未知!", "用户验证", EchoHelper.EchoType.任务信息); member.strMessage = "验证失败,原因未知!"; FilesHelper.Write_File(Application.StartupPath + "\\log\\" + DateTime.Now.Ticks.ToString() + ".txt", html); } if (member.group.Contains("商业授权用户")) { member.IS_X_WordPressBuild = true; } else { member.IS_X_WordPressBuild = false; } return(member.IS_X_PostKing); }