コード例 #1
0
ファイル: Model.cs プロジェクト: emilsoder/ContactBookApp
 public object SearchRecords(string commandtext)
 {
     using (dbContext = new ContactsDBContext())
     {
         return(dbContext.Database.SqlQuery <Contacts>("[dbo].[SearchRecordsProcedure] @UserInput = {0} ", commandtext).ToList());
     }
 }
コード例 #2
0
        public async Task <ActionResult <Contact> > DeleteContactAsync(int id)
        {
            try
            {
                using (var _context = new ContactsDBContext())
                {
                    //buscamos el elemento que tenga el id indicado
                    var contact = await _context.Contacts.FindAsync(id);

                    //si no se encuentra el elemento retornamos NotFound
                    if (contact == null)
                    {
                        return(NotFound(
                                   Helper.CustomMessageResponseHelper(false, null, "404", "No se encontró el ID indicado.")
                                   ));
                    }

                    //caso afirmativo eliminamos de la base y guardamos los cambios
                    _context.Contacts.Remove(contact);
                    await _context.SaveChangesAsync();

                    return(Ok(
                               Helper.CustomMessageResponseHelper(true, null, null, "Se elimino el registro indicado.")
                               ));
                }
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #3
0
        public async Task <IActionResult> UpdateContactAsync(int id, TempContact tempContact)
        {
            //creamos un contacto nuevo
            Contact contact = new Contact();

            try
            {
                using (var _context = new ContactsDBContext())
                {
                    //Buscamos el contacto que va a ser modificado
                    contact = await _context.Contacts.Where(i => i.ContactId == id).FirstAsync();

                    //funcion helper que recibe el contacto inicial y actualiza los campos en funcion del tempContact enviado, pisando solo los campos que no sean nulos
                    contact = Validator.UpdateContactWithTempContact(contact, tempContact);

                    //guardamos los cambios
                    await _context.SaveChangesAsync();

                    //informamos que la operacion fue existosa
                    return(Ok(
                               Helper.CustomMessageResponseHelper(true, new List <Contact>()
                    {
                        contact
                    }, "200OK", "Se actualiza el registro correctamente.")
                               ));
                }
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #4
0
 public List <Contact> GetContacts()
 {
     using (var dbContext = new ContactsDBContext())
     {
         List <Contact> contacts = dbContext.Contacts.ToList();
         return(contacts);
     }
 }
コード例 #5
0
ファイル: Model.cs プロジェクト: emilsoder/ContactBookApp
 public void DeleteRecord(int _contactID)
 {
     using (dbContext = new ContactsDBContext())
     {
         Contacts contact = dbContext.Contacts.Find(_contactID);
         dbContext.Contacts.Remove(contact);
         dbContext.SaveChanges();
     }
 }
コード例 #6
0
 public bool AddContact(Contact contact)
 {
     using (var dbContext = new ContactsDBContext())
     {
         dbContext.Contacts.Add(contact);
         dbContext.SaveChanges();
         return(true);
     }
 }
コード例 #7
0
ファイル: Model.cs プロジェクト: emilsoder/ContactBookApp
        public object QueryResult()
        {
            using (dbContext = new ContactsDBContext())
            {
                var contactQuery = from contacts in dbContext.Contacts
                                   select contacts;

                return(contactQuery.ToList());
            }
        }
コード例 #8
0
        public async Task <IActionResult> GetAllContactsAsync([FromQuery] PaginationFilter filter)
        {
            //filtro que valida si los parametros son validos o no
            var validFilter = new PaginationFilter(filter.PageNumber, filter.PageSize);
            //inicializamos mensajes para el usuario
            string usrMessage   = "";
            string errorMessage = "";

            try {
                //creamos una lista para guardar los resultados de la base paginados
                List <Contact> pagedContacts = new List <Contact>();

                //creamos una lista para guardar todos los resultados de la base
                List <Contact> totalContacts = new List <Contact>();

                using (var _context = new ContactsDBContext())
                {
                    //en primer lugar consultamos la cantidad de elementos en la base
                    totalContacts = await _context.Contacts.ToListAsync();

                    //consultamos todo el contenido de la base
                    pagedContacts = await _context.Contacts
                                    .Skip((validFilter.PageNumber - 1) *validFilter.PageSize)
                                    .Take(validFilter.PageSize)
                                    .ToListAsync();
                }

                //modificamos los mensajes para el usuario de acuerdo a lo necesitado
                if (pagedContacts.Count() == 0)
                {
                    //en caso de no encontrar registros
                    errorMessage = "404";
                    usrMessage   = "No se encontraron registros en la base.";
                }
                else
                {
                    //en caso afirmativo
                    errorMessage = "200OK";
                    usrMessage   = "";
                }

                //retornamos la lista utilizando un wrapper
                return(Ok(
                           new PagedResponse <List <Contact> >(pagedContacts, validFilter.PageNumber, validFilter.PageSize, totalContacts.Count(), errorMessage, usrMessage)
                           ));
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #9
0
        public async Task <IActionResult> PostContactAsync(TempContact tempContact)
        {
            //creamos un nuevo contacto vacio
            Contact contact = new Contact();

            //preparamos una lista de errores en caso de algun valor nulo
            //consideramos todos los campos como obligatorios
            List <string> errorList = new List <string>();

            //consultamos con la funcion helper que verifica si hay algun campo vacio
            errorList = Validator.IsContactValid(tempContact);

            //si recibimos algun error se cancela la operacion y se devuelve un mensaje al usuario con los errores
            if (errorList.Count > 0)
            {
                return(Ok(
                           Helper.CustomMessageResponseHelper(false, null, "Error", "Se produjeron los siguientes errores: " + string.Join <string>(",", errorList))
                           ));
            }
            else
            {
                //si no hay errores se completa el objeto contacto con los datos recibidos
                contact.Company     = tempContact.Company;
                contact.Email       = tempContact.Email;
                contact.FirstName   = tempContact.FirstName;
                contact.LastName    = tempContact.LastName;
                contact.PhoneNumber = tempContact.PhoneNumber;
            }

            try
            {
                using (var _context = new ContactsDBContext())
                {
                    //agregamos y guardamos cambios
                    _context.Contacts.Add(contact);
                    await _context.SaveChangesAsync();
                }

                //retornamos el mensaje de exito con todos los detalles
                return(Ok(
                           Helper.CustomMessageResponseHelper(true, new List <Contact>()
                {
                    contact
                }, "200OK", "El elemento fue correctamente guardado.")
                           ));
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #10
0
        public async System.Threading.Tasks.Task GetContactItembyIDTestAsync()
        {
            using (var context = new ContactsDBContext(options))
            {
                ContactsController controller = new ContactsController(context);
                var result = await controller.GetContactItem(1);

                Assert.Equal(1, result.Value.Id);
                context.Database.EnsureDeleted();
            }
        }
コード例 #11
0
        public async System.Threading.Tasks.Task GetContactItemsTestAsync()
        {
            using (var context = new ContactsDBContext(this.options))
            {
                ContactsController controller = new ContactsController(context);
                var results = await controller.GetContactItems();

                Assert.Equal(4, results.Value.Count());
                //Clean up Code
                context.Database.EnsureDeleted();
            }
        }
コード例 #12
0
        public async Task <IActionResult> GetAllCompaniesAsync()
        {
            //inicializamos mensajes para el usuario
            string usrMessage   = "";
            string errorMessage = "";

            try
            {
                //creamos una lista para guardar los resultados de la base paginados
                List <string> pagedContacts = new List <string>();

                //creamos una lista para guardar todos los resultados de la base
                List <Contact> totalContacts = new List <Contact>();

                using (var _context = new ContactsDBContext())
                {
                    //en primer lugar consultamos la cantidad de elementos en la base
                    totalContacts = await _context.Contacts.ToListAsync();

                    //consultamos todo el contenido de la base
                    pagedContacts = await _context.Contacts
                                    .Select(i => i.Company)
                                    .Distinct()
                                    .ToListAsync();
                }

                //modificamos los mensajes para el usuario de acuerdo a lo necesitado
                if (pagedContacts.Count() == 0)
                {
                    //en caso de no encontrar registros
                    errorMessage = "404";
                    usrMessage   = "No se encontraron registros para la compañía indicada.";
                }
                else
                {
                    //en caso afirmativo
                    errorMessage = "200OK";
                    usrMessage   = "";
                }

                //retornamos la lista utilizando un wrapper
                return(Ok(
                           new PagedResponse <List <string> >(pagedContacts, 1, 1, pagedContacts.Count(), errorMessage, usrMessage)
                           ));
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #13
0
 public bool ChangeContactStatus(int contactId)
 {
     using (var dbContext = new ContactsDBContext())
     {
         var con = dbContext.Contacts.FirstOrDefault(c => c.Id == contactId);
         if (con != null)
         {
             con.IsActive = !con.IsActive;
             dbContext.SaveChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #14
0
ファイル: Model.cs プロジェクト: emilsoder/ContactBookApp
        public void EditRecord(int _contactID, string _firstName, string _lastName, string _phoneNumber, string _email, string _birthday, string _city, string _street, string _postalCode)
        {
            using (dbContext = new ContactsDBContext())
            {
                Contacts contact = dbContext.Contacts.Find(_contactID);

                contact.FirstName   = _firstName;
                contact.LastName    = _lastName;
                contact.PhoneNumber = _phoneNumber;
                contact.Email       = _email;
                contact.Birthday    = _birthday;
                contact.City        = _city;
                contact.Street      = _street;
                contact.PostalCode  = _postalCode;
                dbContext.SaveChanges();
            }
        }
コード例 #15
0
        public ContactsControllerTest()
        {
            if (this.options == null)
            {
                List <ContactItem> myContactItems = CreateDumpTestData();
                this.options = new DbContextOptionsBuilder <ContactsDBContext>()
                               .UseInMemoryDatabase(databaseName: "ContactsTestDatabase")
                               .Options;
                using (var context = new ContactsDBContext(options))
                {
                    foreach (ContactItem item in myContactItems)
                    {
                        context.Add(item);
                    }

                    context.SaveChanges();
                }
            }
        }
コード例 #16
0
        public async Task <IActionResult> GetContactByIdAsync(int id)
        {
            try
            {
                //creamos una lista para guardar todos los resultados de la base
                Contact contactById = new Contact();

                using (var _context = new ContactsDBContext())
                {
                    //consultamos todo el contenido de la base y filtramos por id
                    contactById = await _context.Contacts
                                  .Where(i => i.ContactId == id)
                                  .FirstOrDefaultAsync();
                }

                //en caso de no encontrarse el id informamos el error
                if (contactById == null)
                {
                    //si el resultado es nulo lo informamos
                    return(NotFound(
                               Helper.CustomMessageResponseHelper(false, null, "404", "No se encontró el ID indicado.")
                               ));
                }
                else
                {
                    //si hay un resultado se informa el mismo
                    return(Ok(
                               Helper.CustomMessageResponseHelper(true, new List <Contact>()
                    {
                        contactById
                    }, "200OK", null)
                               ));
                }
            }
            catch (Exception e)
            {
                //capturamos la excepcion
                return(NotFound(
                           Helper.CustomMessageResponseHelper(false, null, "Excepción inesperada", "Se ha producido el siguiente error: " + e.ToString())
                           ));
            }
        }
コード例 #17
0
        public bool UpdateContact(Contact contact)
        {
            using (var dbContext = new ContactsDBContext())
            {
                var con = dbContext.Contacts.FirstOrDefault(c => c.Id == contact.Id);
                if (con != null)
                {
                    con.FirstName   = contact.FirstName;
                    con.LastName    = contact.LastName;
                    con.Email       = contact.Email;
                    con.PhoneNumber = contact.PhoneNumber;
                    con.IsActive    = contact.IsActive;

                    dbContext.SaveChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
コード例 #18
0
 public EFContactsRepository(ContactsDBContext context)
 {
     this.contactsDBContext = context;
 }
コード例 #19
0
 public SkillsController(ContactsDBContext context)
 {
     _context = context;
 }
コード例 #20
0
 public ContactsAPIController(ContactsDBContext context)
 {
     _context = context;
 }
コード例 #21
0
 public ExpertiseLevelsController(ContactsDBContext context, IOptions <JWTSettings> jwtsettings)
 {
     _context = context;
 }
コード例 #22
0
 public AuthenticationController(ContactsDBContext context, IOptions <JWTSettings> jwtsettings)
 {
     _context     = context;
     _jwtSettings = jwtsettings.Value;
 }