public ApiResponse GetById(Guid Id) { UnitContact unitContact = null; unitContact = _faciTechDbContext .UnitContact .Where(e => e.UnitId == Id && e.IsOwner == true && e.IsPrimaryContact == true) .Include(e => e.Unit) .Include(e => e.Unit.Section) .Include(e => e.Contact) .FirstOrDefault(); if (unitContact == null) { var unit = _faciTechDbContext .Unit .Include(e => e.Section) .Where(e => e.Id == Id) .FirstOrDefault(); if (unit == null) { return(NotExistsResponse("Unit")); } unitContact = new UnitContact() { Unit = unit }; } return(new ApiResponse(unitContact)); }
public UnitApiModel MapGet(UnitContact unitContact) { var unit = unitContact.Unit; var owner = unitContact.Contact; UnitApiModel unitApiModel = new UnitApiModel() { Number = unit.Number, FloorNumber = unit.FloorNumber, Id = unit.Id, Name = unit.Number, UnitType = unit.UnitType, Specification = unit.Specification, Area = unit.Area, SectionId = unit.Section.Id.ToString(), SectionName = unit.Section.Name, OwnerLivesHere = unitContact.LivesHere }; if (owner != null) { unitApiModel.Owner = new ContactApiModel() { Id = owner.Id, Email = owner.Email, FirstName = owner.FirstName, LastName = owner.LastName, MobilePhone = owner.MobilePhone, }; } return(unitApiModel); }
public ApiResponse Update(UnitContact unitContact) { var validationError = ValidateUpdate(unitContact.Unit); if (validationError.Count > 0) { return(new ApiResponse(validationError)); } //New Owner if (unitContact.Contact.Id == Guid.Empty) { unitContact.Contact.Id = Guid.NewGuid(); _faciTechDbContext.Contact.Add(unitContact.Contact); } //Link doesnt exists if (unitContact.Id == Guid.Empty) { unitContact.Id = Guid.NewGuid(); _faciTechDbContext.UnitContact.Add(unitContact); } //If contact is new, something to be done for the existing contact. //Link Unit and Contact unitContact.ContactId = unitContact.Contact.Id; unitContact.UnitId = unitContact.Unit.Id; _faciTechDbContext.SaveChanges(); return(new ApiResponse(validationError)); }
public ActionResult Put(Guid communitId, Guid id, [FromBody] UnitApiModel unitApiModel) { try { ApiResponse unitServiceResponse = this._unitService.GetById(id); if (unitServiceResponse.IsSuccess() == false) { return(new ObjectNotFoundResult(unitServiceResponse)); } var contactServiceResponse = this._contactService.GetById(unitApiModel.Owner.Id.Value); if (unitServiceResponse.IsSuccess() == false) { return(new ObjectNotFoundResult(unitServiceResponse)); } UnitContact unitContact = unitServiceResponse.GetData <UnitContact>(); Contact contact = contactServiceResponse.GetData <Contact>(); unitContact.Contact = contact; this._unitMapper.MapUpdate(unitContact, unitApiModel); this._unitService.Update(unitContact); if (unitServiceResponse.IsSuccess()) { return(new ObjectUpdatedResult(unitServiceResponse.Id.Value)); } else { return(new ValidationErrorResult(unitServiceResponse)); } } catch (Exception ex) { return(new UnknownErrorResult(ex, base._errorEnabled)); } }
public UnitContact Map(UnitMemberApiModel unitMemberApiModel) { UnitContact unitContact = new UnitContact() { UnitId = unitMemberApiModel.UnitId }; if (unitMemberApiModel.ContactId.HasValue == false) { unitContact.Contact = new Contact() { FirstName = unitMemberApiModel.Contact.FirstName, LastName = unitMemberApiModel.Contact.LastName, Email = unitMemberApiModel.Contact.Email, MobilePhone = unitMemberApiModel.Contact.MobilePhone }; unitContact.ContactId = Guid.Empty; } else { unitContact.ContactId = unitMemberApiModel.ContactId.Value; unitContact.Contact = null; } return(unitContact); }
public ApiResponse Create(UnitContact unitContactDto) { var unit = unitContactDto.Unit; var contact = unitContactDto.Contact; var validationError = ValidateCreate(unit); if (validationError.Count > 0) { return(new ApiResponse(validationError)); } if (contact.Id == Guid.Empty) { contact.Id = Guid.NewGuid(); _faciTechDbContext.Contact.Add(contact); } unit.Id = Guid.NewGuid(); unit.OwnerId = contact.Id; _faciTechDbContext.Unit.Add(unit); UnitContact unitContact = new UnitContact(); unitContact.ContactId = contact.Id; unitContact.UnitId = unit.Id; unitContact.Id = Guid.NewGuid(); _faciTechDbContext.UnitContact.Add(unitContact); //Link Unit and Contact _faciTechDbContext.SaveChanges(); return(new ApiResponse(new { Id = unit.Id })); }
public ActionResult Update(Guid id, UnitContactApiModel unitContactApiModel) { try { ApiResponse serviceResponse = this._unitContactService.GetSingle(id); if (serviceResponse.IsSuccess() == false) { return(new ObjectNotFoundResult(serviceResponse)); } UnitContact unitContact = serviceResponse.GetData <UnitContact>(); _unitContactMapper.Map(unitContactApiModel, unitContact); serviceResponse = this._unitContactService.Update(unitContact); if (serviceResponse.IsSuccess()) { return(new ObjectUpdatedResult(serviceResponse.Id.Value)); } { return(new ValidationErrorResult(serviceResponse)); } } catch (Exception ex) { return(new UnknownErrorResult(ex, base._errorEnabled)); } }
public ApiResponse Update(UnitContact unitContact) { var validationError = ValidateCreateUpdate(unitContact); if (validationError.Count() == 0) { _faciTechDbContext.SaveChanges(); return(new ApiResponse(new { Id = unitContact.Id }, ApiStatus.Success)); } return(new ApiResponse(validationError)); }
public UnitContactApiModel Map(UnitContact unitContact, UnitContactApiModel unitContactApiModel) { unitContactApiModel.Id = unitContact.Id; unitContactApiModel.ContactId = unitContact.ContactId; unitContactApiModel.UnitId = unitContact.UnitId; unitContactApiModel.UnitNumber = unitContact.Unit.FullName; unitContactApiModel.IsDoctor = unitContact.IsDoctor; unitContactApiModel.IsOwner = unitContact.IsOwner; unitContactApiModel.IsPrimaryContact = unitContact.IsPrimaryContact; unitContactApiModel.LivesHere = unitContact.LivesHere; return(unitContactApiModel); }
public ActionResult Get(Guid communityId, Guid unitId) { var serviceResponse = this._unitService.GetById(unitId); if (serviceResponse.IsError()) { return(new ObjectNotFoundResult(serviceResponse)); } UnitContact unitContact = serviceResponse.GetData <UnitContact>(); var unitApiModel = this._unitMapper.MapGet(unitContact); return(new ObjectFoundResult(new ApiResponse(unitApiModel))); }
public UnitContact Map(UnitContactApiModel unitContactApiModel, UnitContact unitContact = null) { if (unitContact == null) { unitContact = new UnitContact(); } unitContact.ContactId = unitContactApiModel.ContactId.Value; unitContact.UnitId = unitContactApiModel.UnitId.Value; unitContact.IsPrimaryContact = unitContactApiModel.IsPrimaryContact.Value; unitContact.IsOwner = unitContactApiModel.IsOwner.Value; unitContact.LivesHere = unitContactApiModel.LivesHere.Value; return(unitContact); }
public ActionResult GetSingle(Guid id) { try { ApiResponse apiResponse = this._unitContactService.GetSingle(id); UnitContact unitContact = apiResponse.GetData <UnitContact>(); var result = _unitContactMapper.Map(unitContact, new UnitContactApiModel()); return(Ok(result)); } catch (Exception ex) { return(new UnknownErrorResult(ex, base._errorEnabled)); } }
public void MapUpdate(UnitContact unitContact, UnitApiModel unitApiModel) { var ownerId = unitApiModel.Owner.Id.HasValue? unitApiModel.Owner.Id.Value:Guid.Empty; var id = unitContact.Id; _mapper.Map(unitApiModel, unitContact.Unit); _mapper.Map(unitApiModel.Owner, unitContact.Contact); unitContact.Id = id; //unitContact.Contact.Id = ownerId; unitContact.ContactId = ownerId; unitContact.IsPrimaryContact = true; unitContact.IsOwner = true; unitContact.LivesHere = unitApiModel.OwnerLivesHere; }
public List <ErrorInfo> ValidateCreateUpdate(UnitContact unitContact) { List <ErrorInfo> errorInfos = new List <ErrorInfo>(); var nameCount = _faciTechDbContext.UnitContact.Count(e => e.UnitId == unitContact.UnitId && e.ContactId == unitContact.ContactId && e.Id != unitContact.Id); if (nameCount != 0) { errorInfos.Add(new ErrorInfo() { Key = "unitId", Code = "UNIQUE_VIOLATION_ERROR", Description = "Unit number has to be unique" }); } return(errorInfos); }
public ApiResponse AddMember(Guid unitId, UnitContact unitContact) { var unit = _faciTechDbContext.Unit.Where(e => e.Id == unitId).FirstOrDefault(); Guid contactId; if (unitContact.ContactId == Guid.Empty && unitContact.Contact != null) { contactId = Guid.NewGuid(); unitContact.Contact.Id = contactId; unitContact.ContactId = contactId; unitContact.Contact.CommunityId = unit.CommunityId; _faciTechDbContext.Contact.Add(unitContact.Contact); } unitContact.Id = Guid.NewGuid(); _faciTechDbContext.UnitContact.Add(unitContact); _faciTechDbContext.SaveChanges(); return(new ApiResponse(new { Id = unitContact.Id }, ApiStatus.Success)); }
public UnitContact MapCreateOrUpdate(UnitApiModel unitApiModel, Guid communityId) { UnitContact unitContact = new UnitContact() { Contact = new Contact(), Unit = new Unit() }; unitContact.Unit.UnitContacts = new List <UnitContact>(); unitContact.Unit.UnitContacts.Add(unitContact); _mapper.Map(unitApiModel, unitContact.Unit); _mapper.Map(unitApiModel.Owner, unitContact.Contact); unitContact.IsPrimaryContact = true; unitContact.IsOwner = true; unitContact.LivesHere = unitApiModel.OwnerLivesHere; unitContact.Unit.CommunityId = communityId; unitContact.Contact.CommunityId = communityId; return(unitContact); }
private void SavePeople(JArray rowsJArray) { var contactService = CreateService <ContactService>(); List <UnitContact> unitContacts = new List <UnitContact>(); foreach (JObject jObject in rowsJArray) { if (jObject["Status"].ToString() != "Error") { Guid unitId = Guid.Parse(jObject["Unit.NumberId"].ToString()); UnitContact unitContact = new UnitContact(); unitContact.UnitId = unitId; unitContact.Contact = new Contact(); SetValues(jObject, unitContact); unitContact.IsPrimaryContact = true; unitContacts.Add(unitContact); } } contactService.BulkSave(unitContacts, this.communityId); }
public void BulkSave(List <UnitContact> unitContacts, Guid communityId) { var contactsTask = _faciTechDbContext .UnitContact .Where(e => e.Unit.CommunityId == communityId) .Select(e => e.Contact) .ToListAsync(); var unitContactTask = _faciTechDbContext.UnitContact .Where(e => e.Unit.CommunityId == communityId) .ToListAsync(); var unitTask = _faciTechDbContext.Unit .Where(e => e.CommunityId == communityId) .ToListAsync(); Task.WaitAll(contactsTask, unitContactTask, unitTask); var dbContacts = contactsTask.Result; var dbUnitContacts = unitContactTask.Result; var dbUnits = unitTask.Result; foreach (var unitContact in unitContacts) { var isContactAdd = false; var isUnitContactAdd = false; var dbContact = dbContacts.Where(e => e.FirstName == unitContact.Contact.FirstName && e.LastName == unitContact.Contact.LastName && (e.Email == unitContact.Contact.Email || e.Phone == unitContact.Contact.Phone)).FirstOrDefault(); User dbUser = null; if (dbContact == null) { isContactAdd = true; dbContact = new Contact() { Id = Guid.NewGuid() }; dbUser = RegisterInitialCredentials(unitContact.Contact.Email, dbContact.Id); } var dbUnitContact = dbUnitContacts .Where(e => e.UnitId == unitContact.UnitId && e.ContactId == dbContact.Id) .FirstOrDefault(); var dbUnit = dbUnits.Where(e => e.Id == unitContact.UnitId).FirstOrDefault(); if (dbUnitContact == null) { isUnitContactAdd = true; dbUnitContact = new UnitContact() { Id = Guid.NewGuid() }; } dbContact.FirstName = unitContact.Contact.FirstName; dbContact.LastName = unitContact.Contact.LastName; dbContact.Email = unitContact.Contact.Email; dbContact.MobilePhone = unitContact.Contact.MobilePhone; dbContact.CommunityId = communityId; dbUnitContact.UnitId = unitContact.UnitId; dbUnitContact.IsDoctor = unitContact.IsDoctor; dbUnitContact.IsOwner = unitContact.IsOwner; dbUnitContact.IsPrimaryContact = unitContact.IsPrimaryContact; dbUnitContact.ContactId = dbContact.Id; if (isContactAdd) { dbContacts.Add(dbContact); _faciTechDbContext.Add(dbContact); _faciTechDbContext.Add(dbUser); } if (isUnitContactAdd) { dbUnitContacts.Add(dbUnitContact); _faciTechDbContext.Add(dbUnitContact); } if (dbUnitContact.IsOwner) { dbUnit.OwnerId = dbUnitContact.ContactId; } } _faciTechDbContext.SaveChanges(); }