protected override void OnSave() { var lastState = EditObject.CurrentState; var now = DateTime.UtcNow; var usuario = DAOFactory.UsuarioDAO.FindById(Usuario.Id); EditObject.Nombre = txtNombre.Text.Trim(); EditObject.Telefono = txtTelefono.Text.Trim(); EditObject.Mail = txtMail.Text.Trim(); EditObject.TipoProblema = (short)cbTipoProblema.SelectedIndex; EditObject.Descripcion = txtDescripcion.Text.Trim(); EditObject.Nivel = (short)cbNivel.Selected; EditObject.NivelObj = cbNivel.Selected > 0 ? DAOFactory.NivelDAO.FindById(cbNivel.Selected) : null; EditObject.CategoriaObj = cbCategoria.Selected > 0 ? DAOFactory.CategoriaDAO.FindById(cbCategoria.Selected) : null; EditObject.Subcategoria = cbSubcategoria.Selected > 0 ? DAOFactory.SubCategoriaDAO.FindById(cbSubcategoria.Selected) : null; EditObject.MailList = txtMailList.Text.Trim(); if (dtInicio.SelectedDate.HasValue) { EditObject.FechaInicio = SecurityExtensions.ToDataBaseDateTime(dtInicio.SelectedDate.Value); } EditObject.Empresa = cbEmpresa.Selected <= 0 ? null : DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected); EditObject.Vehiculo = cbVehiculo.Selected > 0 ? DAOFactory.CocheDAO.FindById(cbVehiculo.Selected) : null; EditObject.Dispositivo = cbDispositivo.Selected > 0 ? DAOFactory.DispositivoDAO.FindById(cbDispositivo.Selected) : null; EditObject.NroParte = EditMode ? txtNroParte.Text.Trim() : string.Empty; if (!EditMode) { EditObject.Fecha = now; EditObject.Usuario = usuario; } var estado = (short)(!EditMode ? 0 : cbEstado.SelectedIndex); if (EditObject.CurrentState == 4 && cbResolucion.SelectedIndex != 0) { estado = (short)(cbResolucion.SelectedIndex == 1 ? 5 : 6); } var detail = new SupportTicketDetail { Estado = estado, Fecha = now, SupportTicket = EditObject, Usuario = usuario, Descripcion = Server.HtmlEncode(txtComentario.Text.Trim()).Replace("\r\n", "<br />") }; EditObject.AddDetail(detail); if (lastState != estado) { var le = DAOFactory.SupportTicketDAO.GetEstados()[lastState]; var ne = DAOFactory.SupportTicketDAO.GetEstados()[estado]; if (!string.IsNullOrEmpty(detail.Descripcion)) { detail.Descripcion += "<br /><br />"; } detail.Descripcion += string.Concat("[", CultureManager.GetLabel("SUPPORT_STATE_CHANGED"), ": ", le, " > ", ne, "]"); upGridEstados.Update(); } if (filUpload.HasFile) { CheckDirectory(); var filename = GetFileName(filUpload.FileName); filUpload.SaveAs(Path.Combine(AttachDirectory, filename)); if (string.IsNullOrEmpty(EditObject.FileName)) { EditObject.FileName = filename; } else { EditObject.FileName += ";" + filename; } if (!string.IsNullOrEmpty(detail.Descripcion)) { detail.Descripcion += "<br /><br />"; } detail.Descripcion += string.Concat("[", CultureManager.GetLabel("SUPPORT_FILE_UPLOADED"), ": ", filename, "]"); } DAOFactory.SupportTicketDAO.SaveOrUpdate(EditObject); InformarPorMail(!EditMode); upComentarios.Update(); }