public async Task <string> CreateNewOrganizationAsync(Organization organization) { var head = await Organizations.Find(x => x.IsHead) .FirstOrDefaultAsync(); if (organization.IsHead && head != null) { throw new Exception("INFRASTRUCTURE Can't create new Head Organization"); } var id = ObjectId.GenerateNewId(); // TODO move to extension method to static class w\ extensions var document = new OrganizationDocument() { Id = id, Title = organization.Title, IsHead = organization.IsHead, Members = organization.Members, Address = organization.Address, PhoneNumber = organization.PhoneNumber }; await Organizations.InsertOneAsync(document); return(id.ToString()); }
public static Organization AsEntity(this OrganizationDocument doc) { return(new Organization() { Id = doc.Id.ToString(), Title = doc.Title, Address = doc.Address, PhoneNumber = doc.PhoneNumber, IsHead = doc.IsHead, Members = doc.Members }); }