コード例 #1
0
        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());
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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(""); }
        }
コード例 #5
0
        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(""); }
        }
コード例 #6
0
        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));
        }