/// <summary> /// Guarda la Nota y modifica el Guest /// </summary> /// <param name="prNote">Tipo nota</param> ///<param name="guest">Tipo de Guest</param> /// <history> /// [jorcanche] created 14/03/2016 /// </history> public static async Task <int> SaveNoteGuest(PRNote prNote, Guest guest) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //Guardamos la informacion de la nota del guest dbContext.Entry(prNote).State = System.Data.Entity.EntityState.Added; //Guardamos la modificación del guest si se debe modificar if (guest != null) { dbContext.Entry(guest).State = System.Data.Entity.EntityState.Modified; } var respuesta = dbContext.SaveChanges(); transaction.Commit(); return respuesta; } catch { transaction.Rollback(); return 0; } } } })); }
/// <summary> /// Guarda la nota /// </summary> /// <history> /// [jorcanche] created 07/04/2016 /// </history> public async void Save() { try { EnabledControls(true, true, false); if (AfterValidate()) { //Agregamos la nota var note = new PRNote { pnDT = Convert.ToDateTime(txtpnDT.Text), pngu = _guestId, pnPR = txtpnPR.Text, pnText = txtpnText.Text }; //Actualizamos el guest si no tiene ninguna nota Guest guest = null; if (!await BRNotes.GetCountNoteGuest(_guestId)) { guest = await BRGuests.GetGuest(_guestId); guest.guPRNote = true; SaveNote = true; } else { SaveNote = false; } //Enviamos los parametros para que agregue la nueva nota y modificamos el guest. //Si hubo un erro al ejecutar el metodo SaveNoteGuest nos devolvera 0, indicando que ningun paso //se realizo, es decir ni se agrego la nota y se modifico el guest, y siendo así ya no modificamos la variable //_saveNote que es el que indica que se guardo el Avail. if (await BRNotes.SaveNoteGuest(note, guest) != 0) { //Actualizamos el datagrid _pRNoteViewSource.Source = await BRNotes.GetNoteGuest(_guestId); DgNotes_OnSelectedCellsChanged(dgNotes, null); } else { //De no ser así informamos que no se guardo la información por algun motivo UIHelper.ShowMessage("There was an error saving the information, consult your system administrator", MessageBoxImage.Error, "Information can not keep"); } CleanControls(); _creatingNote = false; } else { EnabledControls(false, false, true); } } catch (Exception ex) { UIHelper.ShowMessage(ex); } }