public void SaveMemas(MemasAnalyzeResultModel result, string userId) { using (var ms = new MemoryStream()) { var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(ms, result); byte[] rr = ms.GetBuffer(); var cntx = new BaseDb(); cntx.VkMemasAnalyzeResults.Add(new VkMemasAnalyzeResult { UserId = userId, Name = string.Format("Анализатор мемасов за {0}", DateTime.Now), CollectionDate = DateTime.Now, Result = rr }); cntx.SaveChanges(); } }
public ActionResult Result(int id) { var resultDb = _dbContext.VkMemasAnalyzeResults.FirstOrDefault(rest => rest.Id == id); var result = new MemasAnalyzeResultModel(); try { var formatter = new BinaryFormatter(); using (var ms = new MemoryStream(resultDb.Result)) { result = (MemasAnalyzeResultModel)formatter.Deserialize(ms); } } catch (Exception ex) { Logger.Error(string.Format("Error: {0}", ex)); } return(View("~/Views/Memology/Result.cshtml", result)); }
public MemasAnalyzeResultModel Analyze(string accessToken) { var result = new MemasAnalyzeResultModel(); var groups = DbService.GetListOfGroups(); var rawPosts = new List <XDocument>(); var memasPosts = new List <MemasPost>(); try { foreach (var group in groups) { var toAdd = GetGroupPosts(group, accessToken); rawPosts.Add(toAdd); } } catch (Exception exception) { Logger.Error(string.Format("Ошибка во время скачивания постов из групп: {0}", exception.InnerException)); } try { foreach (var rawPost in rawPosts) { var toAdd = CreateModelPosts(rawPost); memasPosts.AddRange(toAdd); } } catch (Exception exception) { Logger.Error(string.Format("Ошибка во время создания моделей для групп: {0}", exception.InnerException)); } result.TopByLikes = memasPosts.OrderByDescending(p => p.Likes).Take(10).ToList(); try { foreach (var likes in result.TopByLikes) { Thread.Sleep(1000); var likeIds = GetUsersIds(likes.OwnerId, likes.Id, likes.Likes).ToList(); var path = string.Format(@"{0}\Results\Memas\{1}_{2}_{3}_{4}.txt", AppDomain.CurrentDomain.BaseDirectory, accessToken, DateTime.Now.ToString("yyyy.MM.dd.mm.ss"), likes.OwnerId, likes.Id); using (var sw = File.AppendText(path)) { foreach (var like in likeIds) { sw.WriteLine("{0};", like); } } likes.ListOfLikeIds = path; } } catch (Exception exception) { Logger.Error(string.Format("Ошибка во время анализа поство и получения лайкнувших пользователей: {0}", exception.InnerException)); } result.TopByComments = memasPosts.OrderByDescending(p => p.Comments).Take(10).ToList(); result.TopByReposts = memasPosts.OrderByDescending(p => p.Reposts).Take(10).ToList(); return(result); }