public async Task <CommandResult> Handle(DeleteHouseFeatureCommand message)
        {
            HouseFeature entity = _mapper.Map <DeleteHouseFeatureCommand, HouseFeature>(message);

            entity.RowStatus = false;
            entity.Update(message.UserId);

            //if is not valid
            if (entity.HasErrors)
            {
                return(entity.ToResult());
            }

            var repairStatus = await _statusRepository.FirstOrDefaultAsync(p => p.EntityCode == "HO" && p.Code == "REPAIR");

            var repairStatusId = repairStatus == null ? 0 : repairStatus.EntityStatusId;

            var house = await _houseRepository
                        .FirstOrDefaultAsync(p => p.HouseId == message.HouseId);

            var features = await _houseFeatRepository
                           .ListAsync(w => w.RowStatus &&
                                      w.HouseId == message.HouseId &&
                                      w.HouseFeatureStatusId != repairStatusId &&
                                      w.HouseFeatureId != message.HouseFeatureId &&
                                      !w.Feature.IsAllHouse);

            var featureAllHouse = await _houseFeatRepository
                                  .FirstOrDefaultAsync(w => w.RowStatus &&
                                                       w.HouseId == message.HouseId &&
                                                       w.Feature.IsAllHouse);

            var sumRentPrice = features.Sum(p => p.RentPrice);

            featureAllHouse.RentPrice = sumRentPrice;
            house.RentPrice           = sumRentPrice;
            house.Update(message.UserId);

            _houseFeatRepository.UpdatePartial(featureAllHouse, new string[] { "HouseFeatureId",
                                                                               "RentPrice",
                                                                               "UpdatedDate",
                                                                               "UpdatedBy" });

            _houseRepository.UpdatePartial(house, new string[] { "HouseId",
                                                                 "RentPrice",
                                                                 "UpdatedDate",
                                                                 "UpdatedBy" });

            _houseFeatRepository.UpdatePartial(entity, new string[] { "HouseFeatureId",
                                                                      "RowStatus",
                                                                      "UpdatedDate",
                                                                      "UpdatedBy" });
            //_houseRepository.Delete(house);

            await _unitOfWork.CommitAsync();

            //await _bus.PublishAsync(new HouseDeleted() { Id = house.HouseId });

            return(entity.ToResult());
        }
示例#2
0
        public ActionResult DeleteConfirmed(int id)
        {
            HouseFeature houseFeature = db.HouseFeatures.Find(id);

            db.HouseFeatures.Remove(houseFeature);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 public Housefeatures ParseHouseFeature(HouseFeature houseFeature)
 {
     return(new Housefeatures()
     {
         Houseid = houseFeature.HouseId,
         Featureid = houseFeature.FeatureId
     });
 }
示例#4
0
 public ActionResult Edit([Bind(Include = "HouseFeatureId,Description")] HouseFeature houseFeature)
 {
     if (ModelState.IsValid)
     {
         db.Entry(houseFeature).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(houseFeature));
 }
示例#5
0
        public ActionResult Create([Bind(Include = "HouseFeatureId,Description")] HouseFeature houseFeature)
        {
            if (ModelState.IsValid)
            {
                db.HouseFeatures.Add(houseFeature);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(houseFeature));
        }
示例#6
0
 public IActionResult AddHouseFeature(HouseFeature housefeature)
 {
     try
     {
         _HouseFeatureService.AddHouseFeature(housefeature);
         return(CreatedAtAction("AddHouseFeature", housefeature));
     }
     catch (Exception)
     {
         return(BadRequest());
     }
 }
示例#7
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            HouseFeature houseFeature = db.HouseFeatures.Find(id);

            if (houseFeature == null)
            {
                return(HttpNotFound());
            }
            return(View(houseFeature));
        }
示例#8
0
        public async Task <CommandResult> Handle(RegisterHouseCommand message)
        {
            //Validate using domain models
            var entity = _mapper.Map <RegisterHouseCommand, House>(message);

            entity.RowStatus = true;
            entity.Creation(message.UserId);

            //if is not valid
            if (entity.HasErrors)
            {
                return(entity.ToResult());
            }
            var forRentStatusId   = (await _statusRepository.FirstOrDefaultAsync(p => p.EntityCode == "HO" && p.Code == "FOR RENT"))?.EntityStatusId;
            var completeFeatureId = (await _featureRepository.FirstOrDefaultAsync(w => w.IsAllHouse && w.HouseTypeId == message.HouseTypeId))?.FeatureId;

            var initialFeature = HouseFeature.Create(completeFeatureId.GetValueOrDefault(), message.UserId, forRentStatusId.GetValueOrDefault());

            //Insert
            _houseFeatRepository.Add(initialFeature);
            _houseRepository.Add(entity);

            await _unitOfWork.CommitAsync();

            //Publish bussines Event
            //await _bus.PublishAsync(new HouseRegistered() { Id = entity.HouseId });

            //Return result
            if (entity.HouseId != 0)
            {
                message.HouseId = entity.HouseId;
            }

            return(entity.ToRegisterdResult().WithId(entity.HouseId));
            //return entity.ToResult();
        }
示例#9
0
 public void DeleteHouseFeature(HouseFeature housefeature)
 {
     context.Housefeatures.Remove(mapper.ParseHouseFeature(housefeature));
     context.SaveChanges();
 }
示例#10
0
 public void AddHouseFeature(HouseFeature housefeature)
 {
     context.Housefeatures.Add(mapper.ParseHouseFeature(housefeature));
     context.SaveChanges();
 }
示例#11
0
 public void UpdateHouseFeature(HouseFeature housefeature)
 {
     context.Housefeatures.Update(mapper.ParseHouseFeature(housefeature));
     context.SaveChanges();
 }
示例#12
0
 public void AddHouseFeature(HouseFeature houseFeature)
 {
     _repo.AddHouseFeature(houseFeature);
 }