public ActionResult SaveNewsSection(NewsSectionModel model) { if (model.Id <= 0) //新增 { var res = _component.CreateNewsSection(new NewsSetion { CNName = model.CNName, ENName = model.ENName, Sort = model.Sort, CreateTime = DateTime.UtcNow, Status = 0, AccountsId = AccountInfo.Id }); return(Json(res.toJson())); } var resEdit = _component.UpdateNewsSection(new NewsSetion { Id = model.Id, CNName = model.CNName, ENName = model.ENName, Sort = model.Sort, AccountsId = AccountInfo.Id }); return(Json(resEdit.toJson())); }
/// <summary> /// Get the bytearray of the image in the correct order and format /// </summary> /// <param name="article"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> private async Task <List <byte[]> > GetArticleImageData(NewsSectionModel article) { if (article.ArticleImage != null) { using MagickImage image = new MagickImage(article.ArticleImage); image.Format = MagickFormat.Tga; image.ColorType = ColorType.Palette; byte[] convertedImage = image.ToByteArray(); const int colorMapLength = 768; //file[6] << 8 | file[5]; byte[] colorData = new byte[0x300]; Array.Copy(convertedImage, 18, colorData, 0, colorMapLength); byte[] imageData = new byte[convertedImage.Length - 19 - colorMapLength]; Array.Copy(convertedImage, 18 + colorMapLength, imageData, 0, (imageData.Length)); uint imageSize = (uint)(colorData.Length + imageData.Length); if (imageSize > 17152) { _logger.Warning("Image size is bigger than 17152 the size is {0}", imageSize); } else { _logger.Debug("Image size is equals to {0}", imageSize); } const ushort chunkCount = 1; using MemoryStream sizeInfoStream = new MemoryStream(); await sizeInfoStream.WriteAsync(BitConverter.GetBytes(imageSize.Swap())); await sizeInfoStream.WriteAsync(BitConverter.GetBytes(chunkCount.Swap())); byte[] sizeInfo = sizeInfoStream.ToArray(); using MemoryStream imageStream = new MemoryStream(); await imageStream.WriteAsync(BitConverter.GetBytes(ushort.MinValue.Swap())); await imageStream.WriteAsync(BitConverter.GetBytes(imageSize.Swap())); await imageStream.WriteAsync(colorData); await imageStream.WriteAsync(imageData); byte[] imageDetails = imageStream.ToArray(); return(new List <byte[]> { sizeInfo, imageDetails }); } return(null); }
/// <summary> /// Convert Article model to byte array for PS2 Client /// </summary> /// <param name="article"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> private async Task <byte[]> ConvertNewsArticle(NewsSectionModel article) { TimeSpan t = article.ArticleDate - UnixEpoch; ulong secondsSinceEpoch = Convert.ToUInt64(t.TotalSeconds); using MemoryStream memoryStream = new MemoryStream(); await memoryStream.WriteAsync(BitConverter.GetBytes(article.ArticleID.Swap())); await memoryStream.WriteAsync(_encoding.GetBytes(article.ArticleTitle.PadRight(34, '\0'))); await memoryStream.WriteAsync(_encoding.GetBytes(article.ArticleBody.PadRight(0x25a, '\0'))); await memoryStream.WriteAsync(BitConverter.GetBytes(secondsSinceEpoch.Swap()), 0, 8); //await memoryStream.WriteAsync(BitConverter.GetBytes(isNew.Swap()),0,4); // this will be set based on the save ID return(memoryStream.ToArray()); }