public void SetClient(ClientEntity clientEntity, int?userId = null) { if (clientEntity == null) { throw new ArgumentNullException("clientEntity", "clientEntity is null"); } using (Petz_dbEntities db = new Petz_dbEntities()) { var clientUpd = db.petz_Clients.FirstOrDefault(x => x.client_id == clientEntity.Id); if (clientUpd != null) { clientUpd.client_birthday = clientEntity.Birthday; clientUpd.client_document = clientEntity.Document; clientUpd.client_email = clientEntity.Email; clientUpd.client_name = clientEntity.Name; clientUpd.client_nickname = clientEntity.NickName; if (clientEntity.Sex == EnumSex.Female) { clientUpd.client_sex = "F"; } if (clientEntity.Sex == EnumSex.Male) { clientUpd.client_sex = "M"; } if (clientEntity.Sex == EnumSex.Other) { clientUpd.client_sex = null; } clientUpd.date_update = DateTime.Now; if (userId != null && userId > 0) { clientUpd.update_user_id = userId; } } db.SaveChanges(); if (clientEntity.Phones != null) { foreach (var phone in clientEntity.Phones) { petz_Client_Phone p; if (phone.Id <= 0) { p = new petz_Client_Phone { client_phone = phone.Phone, client_id = clientEntity.Id }; db.petz_Client_Phone.Add(p); db.SaveChanges(); } else { p = db.petz_Client_Phone.FirstOrDefault(x => x.phone_id == phone.Id && x.client_id == clientEntity.Id); if (p != null) { p.client_phone = phone.Phone; db.SaveChanges(); } } } } if (clientEntity.Address != null) { foreach (var address in clientEntity.Address) { petz_Address a; if (address.Id <= 0) { a = new petz_Address { address_complement = address.Complement, address_latitude = address.Latitude, address_longitude = address.Longitude, address_name = address.Name, address_nickname = "", address_number = address.Number, address_zip = address.ZipCode, date_insert = DateTime.Now, insert_client_id = clientEntity.Id, state_id = address.State.Id }; db.petz_Address.Add(a); petz_Client_Address p = new petz_Client_Address { address_id = a.address_id, client_id = clientEntity.Id }; db.petz_Client_Address.Add(p); db.SaveChanges(); } else { a = db.petz_Address.FirstOrDefault(x => x.address_id == address.Id); if (a != null) { a.address_complement = address.Complement; a.address_latitude = address.Latitude; a.address_longitude = address.Longitude; a.address_name = address.Name; a.address_nickname = ""; a.address_number = address.Number; a.address_zip = address.ZipCode; a.date_insert = DateTime.Now; a.insert_client_id = clientEntity.Id; a.state_id = address.State.Id; db.SaveChanges(); } } } } } }
public void CreateClient(ClientEntity clientEntity, string password) { if (clientEntity == null) { throw new ArgumentNullException("clientEntity", "clientEntity is null or invalid"); } if (String.IsNullOrEmpty(password)) { throw new ArgumentNullException("password", "Password is null or invalid"); } if (String.IsNullOrEmpty(clientEntity.Email)) { throw new ArgumentNullException("clientEntity.Email", "clientEntity.Email is null or invalid"); } if (String.IsNullOrEmpty(clientEntity.Name)) { throw new ArgumentNullException("clientEntity.Name", "clientEntity.Name is null or invalid"); } if (String.IsNullOrEmpty(clientEntity.Document)) { throw new ArgumentNullException("clientEntity.Document", "clientEntity.Document is null or invalid"); } if (!clientEntity.Document.IsCpf()) { throw new ArgumentNullException("clientEntity.Document", "clientEntity.Document is not a valid CPF"); } var clientAlreadyExists = GetClient(clientEntity.Email); if (clientAlreadyExists == null) { using (Petz_dbEntities db = new Petz_dbEntities()) { petz_Clients client = new petz_Clients { client_birthday = clientEntity.Birthday, client_document = clientEntity.Document.Replace(".", "").Replace("-", ""), client_email = clientEntity.Email, client_name = clientEntity.Name, client_nickname = clientEntity.NickName, client_password = password }; if (clientEntity.Sex == EnumSex.Female) { client.client_sex = "F"; } if (clientEntity.Sex == EnumSex.Male) { client.client_sex = "M"; } if (clientEntity.Sex == EnumSex.Other) { client.client_sex = null; } client.date_insert = DateTime.Now; db.petz_Clients.Add(client); db.SaveChanges(); if (clientEntity.Phones != null) { foreach (var phone in clientEntity.Phones) { petz_Client_Phone p = new petz_Client_Phone { client_phone = phone.Phone, client_id = client.client_id }; db.petz_Client_Phone.Add(p); db.SaveChanges(); } } if (clientEntity.Address != null) { foreach (var address in clientEntity.Address) { petz_Address a = new petz_Address { address_complement = address.Complement, address_latitude = address.Latitude, address_longitude = address.Longitude, address_name = address.Name, address_nickname = "", address_number = address.Number, address_zip = address.ZipCode, date_insert = DateTime.Now, insert_client_id = client.client_id, state_id = address.State.Id }; db.petz_Address.Add(a); petz_Client_Address p = new petz_Client_Address { address_id = a.address_id, client_id = client.client_id }; db.petz_Client_Address.Add(p); db.SaveChanges(); } } } } else { throw new Exception("The Client (" + clientEntity.Email + ") already exists"); } }