Beispiel #1
0
        public ActionResult Add(int sourceType, int sourceId, NoteFormModel model)
        {
            var note = NoteService.NoteNew((SourceType)sourceType, sourceId);

            Csla.Data.DataMapper.Map(model, note, true);

            note = NoteService.NoteSave(note);

            if (note.IsValid)
            {
                note = NoteService.NoteFetch(note.NoteId);

                this.Map(note, model, true);

                model.IsNew = true;

                return(PartialView("NoteUserControl", model));
            }

            this.Map(note, model, false);

            return(this.View(model));
        }
        public IActionResult SubmitNote(NoteFormModel model)
        {
            var id = model.Id;

            if (!ModelState.IsValid)
            {
                var errorMessage = string.Join(' ', ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));

                if (id.HasValue)
                {
                    return(RedirectToAction("Edit", "Notes", new { id }).WithDanger("Validation error!", errorMessage));
                }
                else
                {
                    return(RedirectToAction("Add", "Notes").WithDanger("Validation error!", errorMessage));
                }
            }

            if (id.HasValue)
            {
                var success = _noteService.UpdateNote(model);

                if (!success)
                {
                    return(UserFriendlyNotFoundError($"Could not update a note with id {id}!"));
                }

                return(RedirectToAction("Index", "Notes").WithSuccess("Success!", $"Note {id} has been updated."));
            }
            else
            {
                id = _noteService.AddNote(model);

                return(RedirectToAction("Index", "Notes").WithSuccess("Success!", $"Note {id} has been created."));
            }
        }
Beispiel #3
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
            }));
        }