public JsonResult UpdateContact([FromBody] ContactViewModel item) { if (item != null) { item.AlteradoPor = User.Identity.Name; var updatedItem = DBContacts.Update(item.ParseToDB()).ParseToViewModel(); if (updatedItem != null) { item = updatedItem; item.eReasonCode = 1; item.eMessage = "Contacto atualizado com sucesso."; } else { item.eReasonCode = 2; item.eMessage = "Ocorreu um erro ao atualizar o contacto."; } //Task<WSContacts.Update_Result> updateContactTask = NAVContactsService.UpdateAsync(item, _configws); //try //{ // updateContactTask.Wait(); //} //catch (Exception ex) //{ // item.eReasonCode = 4; // item.eMessage = "Ocorreu um erro ao atualizar o contacto no NAV."; //} } else { item = new ContactViewModel() { eReasonCode = 3, eMessage = "Ocorreu um erro ao atualizar. O contacto não pode ser nulo." }; } return(Json(item)); }
public JsonResult CreateContact([FromBody] ContactViewModel item) { if (item != null) { //Get Numeration bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoContactos.Value; if (item.No == "" || item.No == null) { autoGenId = true; item.No = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); } if (item.No != null) { //Ensure contact Id doesn't exist var existingContact = DBContacts.GetById(item.No); if (existingContact == null) { item.CriadoPor = User.Identity.Name; var newItem = DBContacts.Create(item.ParseToDB()).ParseToViewModel(); if (newItem != null) { //Inserted, update item to return item = newItem; //Task<WSContacts.Create_Result> createContactTask = NAVContactsService.CreateAsync(item, _configws); //try //{ // createContactTask.Wait(); //} //catch (Exception ex) //{ // item.eReasonCode = 3; // item.eMessage = "Ocorreu um erro ao criar o contacto no NAV."; // item.eMessages.Add(new TraceInformation(TraceType.Error, ex.Message)); //} //if (!createContactTask.IsCompletedSuccessfully) //{ // //Delete Created Project on Database // DBContacts.Delete(item.No); // item.eReasonCode = 3; // item.eMessage = "Ocorreu um erro ao criar o contacto no NAV."; //} //else //{ //Update Last Numeration Used ConfiguraçãoNumerações configNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); if (configNumerations != null && autoGenId) { configNumerations.ÚltimoNºUsado = item.No; configNumerations.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(configNumerations); } item.eReasonCode = 1; item.eMessage = "Contacto criado com sucesso."; //} } else { item.eReasonCode = 3; item.eMessage = "Ocorreu um erro ao criar o contacto no portal."; } } else { item.eReasonCode = 4; item.eMessage = "Já existe um contacto com o Nº " + item.No; } } else { item.eReasonCode = 5; item.eMessage = "A numeração configurada não é compativel com a inserida."; } } return(Json(item)); }