public async Task <IActionResult> OnGetAsync() { var accessToken = await HttpContext.GetTokenAsync("access_token"); clientHead = new ClientHead(); if (!await _apiHelper.AuthCheck(accessToken, User.FindFirst("sub").Value)) { return(RedirectToPage("/Logout")); } if (!string.IsNullOrWhiteSpace(Id)) { var response = await _apiHelper.MakeAPICallAsync(accessToken, HttpMethod.Get, APITypes.CLIENT, $"Client/{Id}"); if (response.StatusCode == System.Net.HttpStatusCode.OK) { clientHead = response.ContentAsType <ClientHead>(); } } await PageConstructor(SaveStates.IGNORE, accessToken); SaveMessageModel = await _apiHelper.GenerateSaveMessageModel(accessToken); return(Page()); }
public IActionResult Patch(string id, [FromBody] JsonPatchDocument <ClientHead> clientHeadPatch) { try { if (Guid.TryParse(id, out Guid parsedId)) { //var userId = User.FindFirstValue("sub"); ClientHeader clientHeader = _unitOfWork.ClientHeaders.Get(parsedId); ClientHead clientHead = _mapper.Map <ClientHead>(clientHeader); clientHeadPatch.ApplyTo(clientHead); _mapper.Map(clientHead, clientHeader); _unitOfWork.Complete(); return(CreatedAtRoute("Get", new { id = _mapper.Map <ClientHead>(clientHeader).Id }, _mapper.Map <ClientHead>(clientHeader))); } } catch (Exception e) { string message = e.Message; } return(BadRequest()); }
protected bool Read(MemoryStream stream, out List <object> message) { if (stream.Length > stream.Position) { _recentHead = ReadHead(stream); message = ReadBody(_recentHead, stream); return(true); } else { message = new List <object>(); return(false); } }
//private static string GetStringBetween(string strSource, string strStartTag, string strEndTag) //{ // int start, end; // if(strSource.Contains(strStartTag) && strSource.Contains(strEndTag)) // { // start = strSource.IndexOf(strStartTag, 0) + strStartTag.Length; // end = strSource.IndexOf(strEndTag, start); // return strSource.Substring(start, end - start); // } // return string.Empty; //} private ClientHead GenerateDummyClientHeadModel() { var dummyClientHead = new ClientHead(); dummyClientHead.Id = Guid.Empty; var dummyClientCon = new ClientCon() { Id = Guid.Empty, FirstName = string.Empty, MiddleName = string.Empty, LastName = string.Empty, Email = string.Empty, Phone = string.Empty }; var dummyClientAddr = new ClientAddr() { ClientContactId = Guid.Parse("11111111-1111-1111-1111-111111111111"), Id = Guid.Empty, AddressLine1 = string.Empty, AddressLine2 = string.Empty, AddressLine3 = string.Empty, AddressLine4 = string.Empty, AddressLine5 = string.Empty, Country = string.Empty, Email1 = string.Empty, Email2 = string.Empty, Email3 = string.Empty, Phone1 = string.Empty, Phone2 = string.Empty, Phone3 = string.Empty, PostalCode = string.Empty, Region = string.Empty }; dummyClientCon.ClientAddresses.Add(dummyClientAddr); dummyClientHead.ClientContacts.Add(dummyClientCon); return(dummyClientHead); }
public IActionResult Post([FromBody] ClientHead clientHead) { try { if (clientHead.Id == Guid.Empty) { //var userId = User.FindFirstValue("sub"); var clientHeader = _mapper.Map <ClientHeader>(clientHead); _unitOfWork.ClientHeaders.Add(clientHeader); _unitOfWork.Complete(); return(Created(new Uri($"{Request.Path}/{clientHeader.Id}", UriKind.Relative), _mapper.Map <ClientHead>(clientHeader))); } } catch (Exception e) { string message = e.Message; } return(BadRequest()); }
protected List <object> ReadBody(ClientHead head, MemoryStream stream) { ///此处对读取 BODYSTEAM做了一些优化,如果有问题请注意排查 2015 08 21 //byte[] bodyBuffer = new byte[head.BodyLength]; //int bodyBufferOffset = 0; //stream.Read(bodyBuffer, 0, (int)head.BodyLength); byte[] bodyBuffer = stream.GetBuffer(); int bodyBufferOffset = (int)stream.Position; int bodyLen = (int)head.BodyLength; if (bodyLen < 0) { bodyLen = 0; } stream.Position = bodyBufferOffset + bodyLen; ///bodylen大于零才去读MESSAGE //if (bodyLen > 0) //去掉吧,有些协议的长度就是为零 { List <object> msgs = new List <object>(); if (head.Format == ClientHeadFormatType.Protobuf) { bool isLua = false; bool isCSharp = false; if (__Proxy.__LuaPBProcessor.ContainsKey(head.CmdId) && _router.getPBType(head.Serial) == PBTYPE.LuaPB || _router.getPBType(head.Serial) == PBTYPE.Both) { byte[] buff = new byte[bodyLen]; //stream.Write(buff, bodyBufferOffset, bodyLen); stream.Position = bodyBufferOffset; stream.Read(buff, 0, bodyLen); stream.Position = bodyBufferOffset + bodyLen; msgs.Add(buff); //return buff; isLua = true; } if (_typeProvider.ContainsKey(head.CmdId) && _router.getPBType(head.Serial) == PBTYPE.CSharpPB || _router.getPBType(head.Serial) == PBTYPE.Both) { ReceiveMessageStream.Write(bodyBuffer, bodyBufferOffset, bodyLen); ReceiveMessageStream.Position = 0; Type messageType; TypeProvider.TryGetValue(head.CmdId, out messageType); if (DefineExt.Net_Log_Level > 0) { Debuger.Log(string.Format("Received Package 0x{0}({4}), Body Length = {1}, Message Id = {2}, Serial Id = {3}.", _recentHead.CmdId.ToString("X2"), _recentHead.BodyLength.ToString(), _recentHead.MessageId, _recentHead.Serial, _recentHead.CmdId)); ///解析详细的字段 ///todo.. } if (messageType == null) { ReceiveMessageStream.SetLength(0); if (_router.getPBType(head.Serial) == PBTYPE.CSharpPB) { Debuger.LogWarning(@"返回cmdID消息类型未注册。请在NetworkManager.registerTypes()方法中添加cmdID到返回消息类型的映射。 CmdId = 0x" + _recentHead.CmdId.ToString("X2") + "(" + _recentHead.CmdId + ")"); //return null; } } else { object message = null; message = Serializer.NonGeneric.Deserialize(messageType, ReceiveMessageStream); ReceiveMessageStream.SetLength(0); if ((DefineExt.Net_Log_Level & DefineExt.LOG_FULL_RECV_PROTO_INFO) > 0) { Debuger.Log(String.Format("Receive ----> cmd={0}, serial={1}, proto={2}", head.CmdId, head.Serial, KHUtil.GetProtoStr(message, messageType.FullName))); } msgs.Add(message); isCSharp = true; } } // Update by Chicheng if (msgManager.IsActivate && msgManager.IsSerializeToLocal) { Type messageType; TypeProvider.TryGetValue(head.CmdId, out messageType); // Debug.LogWarning("把读到的消息包序列化到本地"); RemoteModel remoteModel = RemoteModel.Instance; ulong timeStamp = remoteModel.CurrentTime; if (isCSharp && isLua) { serializeToLocalWithType(msgs, messageType, head.CmdId, timeStamp, head.Serial, MessageSource.CSharpAndLua); } else if (isLua) { serializeToLocalWithType(msgs, null, head.CmdId, timeStamp, head.Serial, MessageSource.Lua); } else if (isCSharp) { if (messageType != null) { serializeToLocalWithType(msgs, messageType, head.CmdId, 0, head.Serial, MessageSource.CSharp); } else { Debug.LogWarning("丢弃" + head.Serial); } } } } return(msgs); } }
protected ClientHead ReadHead(MemoryStream stream) { stream.Read(HeadBuffer, 0, ClientHead.HeadLength); return(ClientHead.ConvertFromByte(HeadBuffer)); }