public async Task <IList <TUser> > GetUsersInRoleAsync(string roleName, CancellationToken cancellationToken) { var query = from m in membersRepository.GetAll() join c in contentRepository.GetAll() on m.NodeId equals c.NodeId join ct in contentTypeRepository.GetAll() on c.ContentType equals ct.NodeId join m2m in member2MemberGroupRepository.GetAll() on m.NodeId equals m2m.Member into grouping from m2m in grouping.DefaultIfEmpty() join un in umbracoNodeRepository.GetAll() on m2m.MemberGroup equals un.Id into grouping2 from un in grouping2.DefaultIfEmpty() join pd in propertyDataRepository.GetAll() on m.NodeId equals pd.ContentNodeId join pt in propertyTypeRepository.GetAll() on pd.PropertyTypeId equals pt.Id where un.Text.ToUpper() == roleName.ToUpper() || ct.Alias.ToUpper().Equals(roleName.ToUpper()) select new MemberProperty { Member = m, PropertyData = pd, PropertyType = pt }; var memberProperties = await membersRepository.ToListAsync(query, cancellationToken); var membersProp = memberProperties.GroupBy(x => x.Member.NodeId, x => x); return(membersProp.Select(x => UmbracoUtils.CreateUserFromProperties <TUser>(x.ToList())).ToList()); }
public async Task <TUser> FindByEmailAsync(string normalizedEmail, CancellationToken cancellationToken) { var query = from m in membersRepository.GetAllAsNoTracking() join pd in propertyDataRepository.GetAllAsNoTracking() on m.NodeId equals pd.ContentNodeId join pt in propertyTypeRepository.GetAllAsNoTracking() on pd.PropertyTypeId equals pt.Id where m.Email.ToUpper() == normalizedEmail.ToUpper() select new MemberProperty { Member = m, PropertyData = pd, PropertyType = pt }; var memberProperties = await membersRepository.ToListAsync(query, cancellationToken); return(UmbracoUtils.CreateUserFromProperties <TUser>(memberProperties)); }
public async Task <TUser> FindByIdAsync(string userId, CancellationToken cancellationToken) { if (!int.TryParse(userId, out int intUserId)) { throw new ArgumentException(nameof(userId)); } var query = from m in membersRepository.GetAllAsNoTracking() join pd in propertyDataRepository.GetAllAsNoTracking() on m.NodeId equals pd.ContentNodeId join pt in propertyTypeRepository.GetAllAsNoTracking() on pd.PropertyTypeId equals pt.Id where m.NodeId == intUserId select new MemberProperty { Member = m, PropertyData = pd, PropertyType = pt }; var memberProperties = await membersRepository.ToListAsync(query, cancellationToken); return(UmbracoUtils.CreateUserFromProperties <TUser>(memberProperties)); }
public async Task <string> CreateEnquiry(string sRefNo, string sName, string sEmail, string sPropDetail, string sEnqDetail) { try { //Create a dynamic node in the CMS under Enquiries Node UmbracoUtils utils = new UmbracoUtils(); string result; VisitEnquiryCMSViewModel model = new VisitEnquiryCMSViewModel(); Dictionary <string, string> properties = new Dictionary <string, string>(); int parent = Convert.ToInt32(WebConfigurationManager.AppSettings[PARENTNODE_SETTING]); properties.Add(model.NAME_PROPERTY_NAME, sName); properties.Add(model.EMAIL_PROPERTY_NAME, sEmail); properties.Add(model.PROPDETAIL_PROPERTY_NAME, sPropDetail); properties.Add(model.ENQDETAIL_PROPERTY_NAME, sEnqDetail); string nodeName = NODE_NAME + sRefNo + "-" + DateTime.Now.ToString("MMddyyhhmmss"); //dddd, dd MMMM yyyy HH:mm:ss int newId = utils.CreateContentNode(nodeName, NODE_TYPE_ALIAS, parent, properties); //Set values in the if (newId != 0) { //IPublishedContent node = Umbraco.Content(newId); result = "SUCCESS"; } else { result = "ERROR"; } return(await System.Threading.Tasks.Task.FromResult(result)); } catch (Exception ex) { return(""); } }
public async Task <string> SaveOffer(string sRefNo, string sName, string sEmail, long OfferPrice, bool financing) { try { //Create a dynamic node in the CMS under Enquiries Node UmbracoUtils utils = new UmbracoUtils(); string result; MakeAnOfferModel model = new MakeAnOfferModel(); Dictionary <string, string> properties = new Dictionary <string, string>(); int parent = Convert.ToInt32(WebConfigurationManager.AppSettings[PARENTNODE_SETTING]); properties.Add(model.NAME_PROPERTY_NAME, sName); properties.Add(model.EMAIL_PROPERTY_NAME, sEmail); properties.Add(model.OFFER_PROPERTY_NAME, OfferPrice.ToString()); properties.Add(model.FINANCING_PROPERTY_NAME, (financing ? "YES":"NO")); string nodeName = NODE_NAME + sRefNo + "-" + DateTime.Now.ToString("MMddyyhhmmss"); //dddd, dd MMMM yyyy HH:mm:ss int newId = utils.CreateContentNode(nodeName, NODE_TYPE_ALIAS, parent, properties); //Set values in the if (newId != 0) { //IPublishedContent node = Umbraco.Content(newId); result = "SUCCESS"; } else { result = "ERROR"; } return(await System.Threading.Tasks.Task.FromResult(result)); } catch (Exception ex) { return(""); } }
public ActionResult SaveProperty(PropertyViewModel propertyModel) { if (!ModelState.IsValid) { return(CurrentUmbracoPage()); } //fill the reference number and other data to be calculated try { PropertyDBModel propertyModeltoSave = new PropertyDBModel(); //Get Max ID from the Database var str = new Sql().Select("MAX(PropID)+1").From(TABLE_NAME); long nextID = db.Fetch <long>(str).FirstOrDefault(); string fullRefNo = propertyModel.ReferenceNo + nextID.ToString(); string imagePath = StringConstants.IMAGE_PATH + fullRefNo + "/" + StringConstants.THUMBNAIL_FOLDER_NAME; //Load Data from view model into business model //propertyModeltoSave.PropId = nextID; propertyModeltoSave.PropertyTitle = propertyModel.PropertyTitle; propertyModeltoSave.CategoryId = propertyModel.CategoryId; propertyModeltoSave.LocationId = propertyModel.LocationId; propertyModeltoSave.TypeId = propertyModel.TypeId; propertyModeltoSave.ReferenceNo = fullRefNo; propertyModeltoSave.MainFeature = propertyModel.MainFeature; propertyModeltoSave.Address = propertyModel.Address; propertyModeltoSave.TotalSize = propertyModel.TotalSize; propertyModeltoSave.BuildUpArea = propertyModel.BuildUpArea; propertyModeltoSave.ReraPermitNo = propertyModel.ReraPermitNo; propertyModeltoSave.SellPrice = propertyModel.SellPrice; propertyModeltoSave.carparking = propertyModel.carparking; propertyModeltoSave.bedrooms = propertyModel.bedrooms; propertyModeltoSave.baths = propertyModel.baths; propertyModeltoSave.AvailabilityStatus = propertyModel.AvailabilityStatus; propertyModeltoSave.DevelopmentStatus = propertyModel.DevelopmentStatus; propertyModeltoSave.ServiceId = propertyModel.ServiceId; propertyModeltoSave.PropertyDetailPageID = fullRefNo; propertyModeltoSave.PropertyImagePath = imagePath; propertyModeltoSave.PropertyOwnerId = 1; propertyModeltoSave.UserId = 1; propertyModeltoSave.CreatedOn = System.DateTime.Now; db = ApplicationContext.Current.DatabaseContext.Database; db.Insert(TABLE_NAME_DB, ID_COLUMN_NAME, propertyModeltoSave); TempData["PropertySavedSuccess"] = true; TempData["ReferenceNo"] = fullRefNo; //create a detail node in umbrco content area UmbracoUtils utils = new UmbracoUtils(); utils.CreateDetailContentNode(fullRefNo, null); return(RedirectToCurrentUmbracoPage()); } catch (Exception ex) { ErrorController ec = new ErrorController(); ec.LogErrorinDb(ex); return(CurrentUmbracoPage()); //log message } //return PartialView(StringConstants.PARTIAL_VIEW_PATH + PARTIAL_VIEW_CREATE, await Task.FromResult(propertyModel)); }