コード例 #1
0
        public IActionResult Create(
            [Bind("Title,Address,Price,ContactNumber,Acreage,BeginTime,BackupBeginTime,ExprireTime,BackupExpireTime,RoomNumber,Description,HasPrivateWc,HasMezzanine,AllowCook,FreeTime,SecurityCamera,WaterPrice,ElectronicPrice,WifiPrice,RealEstateTypeId,Latitude,Longtitude,IsFreeWater,IsFreeElectronic,IsFreeWifi,Files")]
            VM_RealEstateDetails details)
        {
            int uploadedFilesCount = 0;
            var realEstateTypeList = _realEstateServices.GetRealEstateTypeList();

            ViewData["RealEstateTypeId"] = new SelectList(realEstateTypeList, "Id", "RealEstateTypeName", details.RealEstateTypeId);

            if (ModelState.IsValid)
            {
                var userId = User.Claims.FirstOrDefault(c => c.Type == "UserId").Value ?? string.Empty;
                if (userId != string.Empty)
                {
                    var realEstateId = _realEstateServices.AddCompleteRealEstate(details, Convert.ToInt32(userId));

                    //tao real estate thanh cong
                    if (realEstateId != -1)
                    {
                        if (details.Files != null && details.Files.Count > 0)
                        {
                            uploadedFilesCount = _fileServices.AddPicture(realEstateId, details.Files);
                        }

                        //use tempdate pass message to index controller
                        TempData["Message"]    = string.Format("Thêm phòng trọ thành công, uploaded {0} hình ảnh", uploadedFilesCount);
                        TempData["MesageType"] = 1;
                        return(RedirectToAction(nameof(ClientRealEstateList)));
                    }
                    else
                    {
                        ViewBag.ErrorMessage = "Có lỗi xảy ra, vui lòng thử lại";
                        return(View(details));
                    }
                }
                else
                {
                    ViewBag.ErrorMessage = "User id không hợp lệ";
                    return(View(details));
                }
            }
            else
            {
                ViewBag.ErrorMessage = "Có lỗi xảy ra, vui lòng thử lại";
                return(View(details));
            }
        }
コード例 #2
0
        public IActionResult Edit(int id,
                                  [Bind("Id,Title,Address,Price,Acreage,BeginTime,ExprireTime,RoomNumber,Description,HasPrivateWc,HasMezzanine,AllowCook,FreeTime,SecurityCamera,WaterPrice,ElectronicPrice,WifiPrice,RealEstateTypeId,ContactNumber,Files")] VM_RealEstateDetails details)
        {
            int uploadedFilesCount = 0;

            if (id != details.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var isUpdateSuccess = _realEstateServices.UpdateRealEstate(details);
                    if (isUpdateSuccess)
                    {
                        if (details.Files != null && details.Files.Count > 0)
                        {
                            uploadedFilesCount     = _fileServices.AddPicture(details.Id, details.Files);
                            TempData["Message"]    = string.Format("Uploaded {0} hình ảnh", uploadedFilesCount);
                            TempData["MesageType"] = 1;
                        }
                        return(RedirectToAction(nameof(ClientRealEstateList)));
                    }
                    else
                    {
                        return(View(details));
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!_realEstateServices.IsExistRealEstate(details.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            return(View(details));
        }
コード例 #3
0
        public bool UpdateRealEstate(VM_RealEstateDetails details)
        {
            var rt = _context.RealEstate.Find(details.Id);

            if (rt != null)
            {
                var rt_detail = _context.RealEstateDetail.FirstOrDefault(d => d.RealEstateId == rt.Id);

                if (rt_detail != null)
                {
                    //it's update time
                    rt.LastUpdate             = DateTime.Now;
                    rt.BeginTime              = DateTime.Parse(details.BeginTime);
                    rt.ExprireTime            = DateTime.Parse(details.ExprireTime);
                    rt.ContactNumber          = details.ContactNumber;
                    rt_detail.Title           = details.Title;
                    rt_detail.Price           = details.Price;
                    rt_detail.Acreage         = details.Acreage;
                    rt_detail.RoomNumber      = details.RoomNumber;
                    rt_detail.Description     = details.Description;
                    rt_detail.HasPrivateWc    = details.HasPrivateWc;
                    rt_detail.HasMezzanine    = details.HasMezzanine;
                    rt_detail.AllowCook       = details.AllowCook;
                    rt_detail.FreeTime        = details.FreeTime;
                    rt_detail.SecurityCamera  = details.SecurityCamera;
                    rt_detail.WaterPrice      = Convert.ToInt32(details.WaterPrice);
                    rt_detail.ElectronicPrice = Convert.ToInt32(details.ElectronicPrice);
                    rt_detail.WifiPrice       = details.WifiPrice;

                    _context.SaveChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            else
            {
                return(false);
            }
        }
コード例 #4
0
        public async Task <VM_RealEstateDetails> GetRealEstateDetails(int?id)
        {
            var info = await _context.RealEstate.Where(r => r.Id == id)
                       .Include(r => r.RealEstateDetail)
                       .Include(r => r.ReaEstateType)
                       .Include(r => r.Map)
                       .Include(r => r.Agent)
                       .SingleOrDefaultAsync();

            if (info != null)
            {
                if (info.Map == null)
                {
                    info.Map = new Map();
                }
                VM_RealEstateDetails result = Helper.MappingFromRealEstate(info);
                return(result);
            }

            return(null);
        }
コード例 #5
0
ファイル: Helper.cs プロジェクト: tansagit/HakunaMatata
        public static VM_RealEstateDetails MappingFromRealEstate(RealEstate info)
        {
            var result = new VM_RealEstateDetails()
            {
                Id               = info.Id,
                Title            = info.RealEstateDetail.Title ?? string.Empty,
                Address          = info.Map.Address ?? string.Empty,
                Price            = info.RealEstateDetail.Price,
                Acreage          = info.RealEstateDetail.Acreage,
                ContactNumber    = info.ContactNumber,
                PostTime         = info.PostTime.ToString("dd/MM/yyyy"),
                LastUpdate       = info.LastUpdate?.ToString("dd/MM/yyyy"),
                BeginTime        = info.BeginTime.ToString("dd/MM/yyyy"),
                ExprireTime      = info.ExprireTime?.ToString("dd/MM/yyyy"),
                RoomNumber       = info.RealEstateDetail.RoomNumber,
                Description      = info.RealEstateDetail.Description,
                AgentId          = info.Agent.Id,
                AgentName        = info.Agent.AgentName,
                HasPrivateWc     = info.RealEstateDetail.HasPrivateWc,
                HasMezzanine     = info.RealEstateDetail.HasMezzanine,
                AllowCook        = info.RealEstateDetail.AllowCook,
                FreeTime         = info.RealEstateDetail.FreeTime,
                SecurityCamera   = info.RealEstateDetail.SecurityCamera,
                WaterPrice       = info.RealEstateDetail.WaterPrice ?? 0,
                ElectronicPrice  = info.RealEstateDetail.ElectronicPrice ?? 0,
                WifiPrice        = info.RealEstateDetail.WifiPrice ?? 0,
                Latitude         = info.Map.Latitude ?? Constants.DEFAULT_LATITUDE,
                Longtitude       = info.Map.Longtitude ?? Constants.DEFAULT_LONGTITUDE,
                RealEstateTypeId = info.ReaEstateType.Id,
                IsActive         = info.IsActive,
                IsConfirm        = info.IsConfirm,
                Status           = GetStatus(info)
            };

            return(result);
        }
コード例 #6
0
        /// <summary>
        /// function nay lam cai me gi vay nhi
        /// </summary>
        /// <param name="details"></param>
        /// <param name="agentId"></param>
        /// <returns></returns>
        public int AddCompleteRealEstate(VM_RealEstateDetails details, int agentId)
        {
            var realEstate = new RealEstate()
            {
                PostTime         = DateTime.Now,
                LastUpdate       = DateTime.Now,
                BeginTime        = Convert.ToDateTime(details.BeginTime),
                ExprireTime      = Convert.ToDateTime(details.ExprireTime),
                RealEstateTypeId = details.RealEstateTypeId,
                AgentId          = agentId,
                ContactNumber    = details.ContactNumber,
                IsActive         = false,
                IsConfirm        = agentId == 1,
                IsAvaiable       = true,
                ConfirmStatus    = agentId == 1 ? 1 : 0
            };
            var realEstateId = AddNewRealEstate(realEstate);

            //tao real estate thanh cong
            if (realEstateId != -1)
            {
                //add details
                var rtDetails = new RealEstateDetail()
                {
                    RealEstateId    = realEstateId,
                    Title           = details.Title,
                    Price           = details.Price,
                    Acreage         = details.Acreage,
                    RoomNumber      = details.RoomNumber,
                    Description     = details.Description,
                    HasPrivateWc    = details.HasPrivateWc,
                    HasMezzanine    = details.HasMezzanine,
                    AllowCook       = details.AllowCook,
                    FreeTime        = details.FreeTime,
                    SecurityCamera  = details.SecurityCamera,
                    WaterPrice      = details.IsFreeWater ? 0 : Convert.ToInt32(details.WaterPrice),
                    ElectronicPrice = details.IsFreeElectronic ? 0 : Convert.ToInt32(details.ElectronicPrice),
                    WifiPrice       = details.IsFreeWifi ? 0 : details.WifiPrice
                };

                var isSuccessAddDetails = AddRealEstateDetails(rtDetails);

                //add map
                var map = new Map()
                {
                    Address      = details.Address,
                    Latitude     = details.Latitude,
                    Longtitude   = details.Longtitude,
                    RealEstateId = realEstateId
                };
                var isSuccessAddMap = AddMapForRealEstate(map);

                //neu add thong tin chi tiet va map thanh cong thi active
                if (isSuccessAddDetails && isSuccessAddMap)
                {
                    ActiveRealEstate(realEstateId);
                    return(realEstateId);
                }
                else
                {
                    return(-1);
                }
            }

            return(realEstateId);
        }