public ContentResult GetNotes(int id, string objectType, int limit = 20, int offset = 0, string token = "") { DateTime startDate = DateTime.Now; var user = userService.GetByToken(token); if (string.IsNullOrEmpty(objectType)) { return(JsonMessage("Не указан тип объекта")); } if (id <= 0) { return(JsonMessage("Не указан ID объекта")); } DateTime endDate1 = new DateTime(DateTime.Now.Ticks - startDate.Ticks); var notes = noteService.GetByObject(objectType, id, user != null ? user.ID : 0, limit, offset); var vm = new List <NoteViewModel>(); //сформировать список заметок //List<int> idList=new List<int>(); foreach (var note in notes) { vm.Add(NoteViewModel.GetMap(note)); } //long ticks = msg.StopDateTime.Ticks - msg.StartDateTime.Ticks; DateTime endDate = new DateTime(DateTime.Now.Ticks - startDate.Ticks); //отметить как просмотренные dbService.UpdateObjectLastVisit(user.ActiveProfileID, notes.Select(s => s.ID).ToList(), "note"); SocketService socketService = new SocketService(); socketService.SendShowObject(G.CurrentProjectID, user.ID, user.ActiveProfileID, id, objectType); return(JsonResult(new { notes = vm, endDate1 = endDate1.Ticks / TimeSpan.TicksPerMillisecond, endDate = endDate.Ticks / TimeSpan.TicksPerMillisecond //long ticks = msg.StopDateTime.Ticks - msg.StartDateTime.Ticks; })); }
public ContentResult AddNote(NoteFormModel form, string token) { // Response.AddHeader("Access-Control-Allow-Origin", "*"); var user = userService.GetByToken(token); if (user == null || user.ID == 0) { return(JsonMessage("Ошибка! Пользователь не авторизован!")); } //получение параметров if (string.IsNullOrEmpty(form.Text)) { return(JsonMessage("Не задан текст заметки")); } if (string.IsNullOrEmpty(form.ObjectType)) { return(JsonMessage("Не задан тип объекта для заметки")); } if (form.ObjectID <= 0) { return(JsonMessage("Не задан идентификатор объекта для заметки")); } var party = partyService.GetByUser(user.ID, G.CurrentProjectID); //сформировать заметку //по идее надо проверять что заметка создается на существующий объект (это на будущее проверку) Note note = new Note { IsPublic = form.IsPublic, ObjectID = form.ObjectID, ObjectType = form.ObjectType, Text = form.Text, UserID = user.ID, PartyID = party != null ? party.ID : 0, ProjectID = G.CurrentProjectID }; //2018 временно эксперимент List <DataPropertyValue> props = new List <DataPropertyValue>(); props.Add(new DataPropertyValue { Key = "1", Value = "ds" }); props.Add(new DataPropertyValue { Key = "werret1", Value = "daawrweews" }); props.Add(new DataPropertyValue { Key = "1dfgdg", Value = "dsgfdg" }); note.DataProperty = Newtonsoft.Json.JsonConvert.SerializeObject(props, new Newtonsoft.Json.JsonSerializerSettings { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() }); noteService.AddNote(note); // note = noteService.GetByID(note.ID); var vm = NoteViewModel.GetMap(note); //сохранить в иерархию объектов dbService.AddObjectHierarchy(new ObjectHierarchy { ObjectType = "note", ObjectID = note.ID, ProjectID = G.CurrentProjectID, ParentObjectID = form.ObjectID, ParentObjectType = form.ObjectType, IsCompleteEdit = 1, IsPublic = form.IsPublic }); //отметить что это заметку прочитал dbService.AddObjectLastVisit(user.ActiveProfileID, note.ID, "note"); //отправить уведомление клиентам об изменении данных SocketService socketService = new SocketService(); var totalCountData = (sqlDataService.GetObjectStatistic(G.CurrentProjectID, note.ObjectID, note.ObjectType)); var newCountData = (sqlDataService.GetNewObjectStatistic(G.CurrentProjectID, note.ObjectID, note.ObjectType, user.ActiveProfileID)); //профиль=1 socketService.SendAddNewObject(G.CurrentProjectID, note.ObjectID, note.ObjectType, "note", totalCountData, newCountData); return(JsonResult(new { message = "Заметка сохранена!", note = vm })); }