public ActionResult Contact(Contact_Info info) { if (ModelState.IsValid) { return(View("Confirmation")); } else { return(View()); } }
//vraca iz baze sve informacije o kontaktu sa zadanim id-em u obliku instance Contact_Info klase public Contact_Info getContactInfoById(int ConId) { using (ContactsDBEntities contactsData = new ContactsDBEntities()) { //stvara se i puni temp, instanca klase Contact_Info Contact_Info temp = new Contact_Info(); //id, ime, prezime i adresu vade se iz tablice "Contacts" var tempContact = contactsData.Contacts.Where(x => x.Id == ConId).Single(); temp.Id = ConId; temp.Name = tempContact.Name; temp.Surname = tempContact.Surname; temp.Address = tempContact.Address; //lista emailova/telefonskih brojeva/tagova //(instanci klase Email/Telephone/Tag koja sadrzi id osobe, id unosa i sam email/broj/tag) //dohvaca se iz tablice "Emails"/"Telephones"/"Tags" var tempEmail = contactsData.Emails.Where(x => x.PersonId == ConId).ToList(); foreach (var mail in tempEmail) { temp.Emails.Add(mail); } var tempTelephone = contactsData.Telephones.Where(x => x.PersonId == ConId).ToList(); foreach (var tel in tempTelephone) { temp.Telephones.Add(tel); } var tempTag = contactsData.Tags.Where(x => x.PersonId == ConId).ToList(); foreach (var tag in tempTag) { temp.Tags.Add(tag); } //vracanje popunjene instance klase "Contact_Info" return(temp); } }
//funkcija dodaje novi kontakt u bazu, sa svim podacima (ime, prezime, adresa, emailovi, tel.brojevi, tagovi) public int addFullContact(Contact_Info Con) { if (Con != null) { using (ContactsDBEntities contactsData = new ContactsDBEntities()) { //prvo se dodaju osnovni podaci (ime, prezime i adresa) u tablicu "Contacts" Contact ConBasic = new Contact(Con.Name, Con.Surname, Con.Address); contactsData.Contacts.Add(ConBasic); contactsData.SaveChanges(); //s dobivenim id-em osobe, dodaju se njeni mailovi, telefonski brojevi i tagovi, //sve u svoje tablice foreach (var em in Con.Emails) { Email Em = new Email(ConBasic.Id, em.Email1); addEmail(Em); } foreach (var tel in Con.Telephones) { Telephone Tel = new Telephone(ConBasic.Id, tel.Telephone1); addTelephone(Tel); } foreach (var tag in Con.Tags) { Tag Tag = new Tag(ConBasic.Id, tag.Tag1); addTag(Tag); } } return(1); } else { return(0); } }
//vraca listu svih kontakata iz baze public JsonResult getAll() { using (ContactsDBEntities contactsData = new ContactsDBEntities()) { List <Contact_Info> completeList = new List <Contact_Info>(); var contacts = contactsData.Contacts; var emails = contactsData.Emails; var telephones = contactsData.Telephones; var tags = contactsData.Tags; //sintaksa f-je GroupJoin: //Outer.GroupJoin(Inner, outer => key, inner => key, (outer, inner) => result) //prvi join radi se na contacts-emails tablici var contactList = contacts.GroupJoin(emails, contact => contact.Id, email => email.PersonId, (contact, email) => new { Id = contact.Id, Name = contact.Name, Surname = contact.Surname, Address = contact.Address, Email = email }); //u drugom joinu na contacts-emails dodajemo i telephones var contactList2 = contactList.GroupJoin(telephones, contact => contact.Id, telephone => telephone.PersonId, (contact, telephone) => new { Id = contact.Id, Name = contact.Name, Surname = contact.Surname, Address = contact.Address, Email = contact.Email, Telephone = telephone }); //na kraju, treci join stvara contacts-emails-telephones-tags var contactList3 = contactList2.GroupJoin(tags, contact => contact.Id, tag => tag.PersonId, (contact, tag) => new { Id = contact.Id, Name = contact.Name, Surname = contact.Surname, Address = contact.Address, Email = contact.Email, Telephone = contact.Telephone, Tag = tag }); //prebacivanje iz contactList3 u completeList foreach (var contact in contactList3) { Contact_Info temp = new Contact_Info(); temp.Id = contact.Id; temp.Name = contact.Name; temp.Surname = contact.Surname; temp.Address = contact.Address; foreach (var em in contact.Email) { temp.Emails.Add(em); } foreach (var tel in contact.Telephone) { temp.Telephones.Add(tel); } foreach (var tag in contact.Tag) { temp.Tags.Add(tag); } completeList.Add(temp); } return(Json(completeList, JsonRequestBehavior.AllowGet)); } }
public ActionResult SaveContact(Contact_Names contact) { var masterId = Guid.NewGuid(); var contactMaster = new Contact_Names() { Id = masterId, First_Name = contact.First_Name, Last_Name = contact.Last_Name, orderDate = contact.orderDate, key = contact.key }; if (null != db.Contact_Names.Find(contactMaster.key)) { var check = new Contact_Names(); check = db.Contact_Names.Where(w => w.Id == contactMaster.key).SingleOrDefault(); check.First_Name = contact.First_Name; check.Last_Name = contact.Last_Name; if (contact.Contact_Info.Any()) { foreach (var item in contact.Contact_Info) { var detailCheck = new Contact_Info() { Phone_Number = item.Phone_Number, Email = item.Email, Note = item.Note }; detailCheck = db.Contact_Info.Where(i => i.uni_id == contactMaster.key).SingleOrDefault(); detailCheck.Phone_Number = item.Phone_Number; detailCheck.Email = item.Email; detailCheck.Note = item.Note; } } } else { db.Contact_Names.Add(contactMaster); //Process Contact details if (contact.Contact_Info.Any()) { foreach (var item in contact.Contact_Info) { var detailId = Guid.NewGuid(); var contactDetails = new Contact_Info() { Id = detailId, uni_id = masterId, Phone_Number = item.Phone_Number, Email = item.Email, Note = item.Note }; db.Contact_Info.Add(contactDetails); } } } try { if (db.SaveChanges() > 0) { return(Json(new { error = false, message = "Contact saved successfully" })); } } catch (Exception ex) { return(Json(new { error = true, message = ex.Message })); } return(Json(new { error = true, message = "An unknown error has occured" })); }