示例#1
0
        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));
        }
示例#2
0
        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));
        }