internal static void LearnMemory(dynamic metadata, dynamic content) { var groupKey = metadata.GroupKey.ToString(); var id = content.Id.ToString(); var memoryItem = Memories.SingleOrDefault(d => d.Id == id); if (memoryItem != null) { var nextdate = Now; var stage = memoryItem.Stage; switch (memoryItem.Stage) { case MemoryStage.Stage0: stage = MemoryStage.Stage1; break; case MemoryStage.Stage1: nextdate = Now.AddDays(1); stage = MemoryStage.Stage2; break; case MemoryStage.Stage2: nextdate = Now.AddDays(3); stage = MemoryStage.Stage3; break; case MemoryStage.Stage3: nextdate = Now.AddDays(7); stage = MemoryStage.Stage4; break; case MemoryStage.Stage4: nextdate = Now.AddDays(14); stage = MemoryStage.Stage5; break; case MemoryStage.Stage5: nextdate = Now.AddDays(30); stage = MemoryStage.Stage6; break; case MemoryStage.Stage6: nextdate = DateTimeOffset.MaxValue; break; default: break; } memoryItem.NextMemorizeDate = nextdate; memoryItem.Stage = stage; } }
internal static void DeleteMemory(dynamic metadata, dynamic content) { var id = content.Id.ToString(); var memory = Memories.SingleOrDefault(t => t.Id == id); var groupKey = metadata.GroupKey.ToString(); var memberKey = metadata.MemberKey.ToString(); if (memory != null) { Memories.Remove(memory); SendFeedbackMessage(type: MsgType.Success, actionTime: GetCreateDate(metadata), action: MapAction.MemoryFeedback.MemoryDeleted.Name, content: new { Id = id }); } else { SendFeedbackMessage(type: MsgType.Error, actionTime: GetCreateDate(metadata), action: MapAction.MemoryFeedback.CannotFindMemory.Name, content: "Cannot find memory item!"); } }