Ejemplo n.º 1
0
        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;
            }));
        }
Ejemplo n.º 2
0
        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
            }));
        }