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.")); } }
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 })); }