public async Task <IHttpActionResult> GetMarketHierarchyAsync(int id) { try { MarketHierarchy market = await _unitOfWork.MarketHierarchies.GetAsync(id); if (market == null) { _logger.Info(string.Format("No market found with id", id)); return(NotFound()); } return(Ok(new MarketHierarchyDto() { Id = market.Id, Code = market.Code, Name = market.Name, Type = market.Type, ParentId = market.ParentId })); } catch (Exception ex) { if (_logger.IsDebugEnabled) { _logger.Debug(ex); return(InternalServerError(ex)); } return(InternalServerError()); } }
public async Task <JsonResult> SaveAsync(MarketHierarchyViewModel record) { try { MarketHierarchy mh = null; if (ModelState.IsValid) { MarketHierarchyModel model = new MarketHierarchyModel(_unitOfWork); mh = await model.SaveAsync(record); logger.Debug("Market Hierarchy saved successfully."); return(Json(new MarketHierarchyTreeViewModel() { text = mh.Code + "-" + mh.Name, code = mh.Code, id = mh.Id, name = mh.Name, parentId = mh.ParentId != null?mh.ParentId.Value:-1, type = mh.Type.ToString() }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { result = false }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { logger.Error("Error while invoking Save action method: ", ex); return(Json(new { result = false, error = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public async Task <int> DeleteAsync(int Id) { MarketHierarchy mh = await _unitOfWork.MarketHierarchies.GetAsync(Id); if (mh == null) { throw new Exception("Invalid Market Hierarchy Id"); } _unitOfWork.MarketHierarchies.Remove(mh); return(await _unitOfWork.CompleteAsync()); }
public async Task InsertMarketHierarchyAsync() { MarketHierarchy nation = new MarketHierarchy() { Code = "M1", CreatedBy = "Unit Test", Name = "US", Type = MarketHierarchyType.Nation }; MarketHierarchy region = new MarketHierarchy() { Code = "M2", CreatedBy = "Unit Test", Name = "Virginia", Type = MarketHierarchyType.Region, Parent = nation }; MarketHierarchy territory = new MarketHierarchy() { Code = "M3", CreatedBy = "Unit Test", Name = "Alexandria", Type = MarketHierarchyType.Territory, Parent = region }; MarketHierarchy route = new MarketHierarchy() { Code = "M4", CreatedBy = "Unit Test", Name = "Richmond Hwy", Type = MarketHierarchyType.Route, Parent = territory }; UnitOfWork.MarketHierarchies.Add(route); UnitOfWork.MarketHierarchies.Add(territory); UnitOfWork.MarketHierarchies.Add(region); UnitOfWork.MarketHierarchies.Add(nation); await UnitOfWork.CompleteAsync(); MarketHierarchy dbRoute = await UnitOfWork.MarketHierarchies.GetAsync(route.Id); Assert.IsNotNull(dbRoute); Assert.IsNotNull(dbRoute.Parent); MarketHierarchy dbTerritory = dbRoute.Parent; Assert.AreEqual(dbTerritory.Code, territory.Code); Assert.AreEqual(dbTerritory.Name, territory.Name); Assert.AreEqual(dbTerritory.Type, territory.Type); MarketHierarchy dbRegion = dbTerritory.Parent; Assert.AreEqual(dbRegion.Code, region.Code); Assert.AreEqual(dbRegion.Name, region.Name); Assert.AreEqual(dbRegion.Type, region.Type); MarketHierarchy dbNation = dbRegion.Parent; Assert.AreEqual(dbNation.Code, nation.Code); Assert.AreEqual(dbNation.Name, nation.Name); Assert.AreEqual(dbNation.Type, nation.Type); }
public void DeleteMarketHierarchy() { MarketHierarchy nation = new MarketHierarchy() { Code = "M1", CreatedBy = "Unit Test", Name = "US", Type = MarketHierarchyType.Nation }; MarketHierarchy region = new MarketHierarchy() { Code = "M2", CreatedBy = "Unit Test", Name = "Virginia", Type = MarketHierarchyType.Region, Parent = nation }; MarketHierarchy territory = new MarketHierarchy() { Code = "M3", CreatedBy = "Unit Test", Name = "Alexandria", Type = MarketHierarchyType.Territory, Parent = region }; MarketHierarchy route = new MarketHierarchy() { Code = "M4", CreatedBy = "Unit Test", Name = "Richmond Hwy", Type = MarketHierarchyType.Route, Parent = territory }; UnitOfWork.MarketHierarchies.Add(route); UnitOfWork.MarketHierarchies.Add(territory); UnitOfWork.MarketHierarchies.Add(region); UnitOfWork.MarketHierarchies.Add(nation); UnitOfWork.Complete(); var all = UnitOfWork.MarketHierarchies.Find(x => x.Id > 0); Assert.AreEqual(4, all.Count); MarketHierarchy dbNation = UnitOfWork.MarketHierarchies.Get(nation.Id); Assert.IsNotNull(dbNation); UnitOfWork.MarketHierarchies.Remove(dbNation); UnitOfWork.Complete(); all = UnitOfWork.MarketHierarchies.Find(x => x.Id > 0); Assert.AreEqual(3, all.Count); MarketHierarchy dbRegion = UnitOfWork.MarketHierarchies.Get(region.Id); Assert.IsNotNull(dbRegion); Assert.IsNull(dbRegion.Parent); }
public async Task <MarketHierarchy> SaveAsync(MarketHierarchyViewModel record) { MarketHierarchy mh = null; MarketHierarchy parent = null; if (record.Id != null) { mh = _unitOfWork.MarketHierarchies.Get(record.Id.Value); if (mh == null) { throw new Exception("Invalid Market Hierarchy Id"); } mh.UpdatedBy = System.Web.HttpContext.Current.User.Identity.Name; mh.UpdatedDate = DateTime.Now; } else { mh = new MarketHierarchy(); _unitOfWork.MarketHierarchies.Add(mh); mh.CreatedBy = System.Web.HttpContext.Current.User.Identity.Name; } if (record.ParentId != null) { parent = _unitOfWork.MarketHierarchies.Get(record.ParentId.Value); } mh.Code = record.Code; mh.Name = record.Name; mh.Parent = parent; mh.Type = parent != null ? parent.Type + 1 : MarketHierarchyType.Nation; await _unitOfWork.CompleteAsync(); return(mh); }
public async Task <IHttpActionResult> SaveFieldForceAsync(FieldForceDto record) { FieldForce fieldforce = null; MarketHierarchy market = null; FieldForceAddress address = null; List <Distributor> distributors = new List <Distributor>(); if (ModelState.IsValid) { try { if (record == null) { return(BadRequest()); } if (record.MarketHierarchyId.HasValue) { market = await _unitOfWork.MarketHierarchies.GetAsync(record.MarketHierarchyId.Value); if (market == null) { return(BadRequest("Invalid market id")); } } foreach (int id in record.DistributorIds) { Distributor distributor = _unitOfWork.Distributors.Get(id); if (distributor == null) { return(BadRequest("Invalid fistributor id")); } distributors.Add(distributor); } if (record.Id != null) { fieldforce = _unitOfWork.FieldForces.Get(record.Id.Value); if (fieldforce == null) { return(NotFound()); } fieldforce.UpdatedBy = "web:api"; fieldforce.UpdatedDate = DateTime.Now; } else { fieldforce = new FieldForce(); _unitOfWork.FieldForces.Add(fieldforce); fieldforce.CreatedBy = "web:api"; } fieldforce.Distributors.Clear(); fieldforce.Distributors = distributors; fieldforce.MarketHierarchy = market; fieldforce.Code = record.Code; fieldforce.Name = record.Name; fieldforce.Email = record.Email; fieldforce.Phone = record.Phone; address = new FieldForceAddress(); address.AddressLine1 = record.AddressLine1; address.AddressLine2 = record.AddressLine2; address.City = record.City; address.State = record.State; address.Zip = record.Zip; await _unitOfWork.CompleteAsync(); return(Ok(new { status = "success" })); } catch (Exception ex) { if (_logger.IsDebugEnabled) { _logger.Debug(ex); return(InternalServerError(ex)); } return(InternalServerError()); } } else { return(BadRequest(ModelState)); } }
public void InsertFieldForceWithDistributorAndMarketHierarchy() { MarketHierarchy nation = new MarketHierarchy() { Code = "M1", CreatedBy = "Unit Test", Name = "US", Type = MarketHierarchyType.Nation }; MarketHierarchy region = new MarketHierarchy() { Code = "M2", CreatedBy = "Unit Test", Name = "Virginia", Type = MarketHierarchyType.Region, Parent = nation }; MarketHierarchy territory = new MarketHierarchy() { Code = "M3", CreatedBy = "Unit Test", Name = "Alexandria", Type = MarketHierarchyType.Territory, Parent = region }; MarketHierarchy route = new MarketHierarchy() { Code = "M4", CreatedBy = "Unit Test", Name = "Richmond Hwy", Type = MarketHierarchyType.Route, Parent = territory }; Distributor distributor = new Distributor() { Address = "9420 Key West Avenue", CreatedBy = "Unit Test", Code = "D1", Name = "DrFirst" }; FieldForceAddress address = new FieldForceAddress() { AddressLine1 = "7101 Richmond Hwy", AddressLine2 = "Apt 2", State = "VA", Zip = "22306", City = "Alexandria", CreatedBy = "Unit Test" }; FieldForce fieldForce = new FieldForce() { Address = address, Code = "F1", Email = "*****@*****.**", Name = "Faisal AHmed", Phone = "(571)-409-8511", CreatedBy = "Unit Test" }; fieldForce.MarketHierarchy = route; fieldForce.Distributors.Add(distributor); UnitOfWork.MarketHierarchies.Add(route); UnitOfWork.MarketHierarchies.Add(territory); UnitOfWork.MarketHierarchies.Add(region); UnitOfWork.MarketHierarchies.Add(nation); UnitOfWork.Distributors.Add(distributor); UnitOfWork.FieldForces.Add(fieldForce); UnitOfWork.Complete(); FieldForce dbFieldForce = UnitOfWork.FieldForces.Get(fieldForce.Id); Assert.IsNotNull(dbFieldForce); Assert.AreEqual(dbFieldForce.Name, fieldForce.Name); Assert.AreEqual(dbFieldForce.Code, fieldForce.Code); Assert.AreEqual(dbFieldForce.Email, fieldForce.Email); Assert.AreEqual(dbFieldForce.Phone, fieldForce.Phone); Assert.IsNotNull(dbFieldForce.MarketHierarchy); Assert.AreEqual(dbFieldForce.MarketHierarchy.Id, route.Id); Assert.AreEqual(dbFieldForce.MarketHierarchy.Code, route.Code); Assert.AreEqual(dbFieldForce.MarketHierarchy.Name, route.Name); Assert.AreEqual(1, dbFieldForce.Distributors.Count); Assert.IsNotNull(dbFieldForce.Distributors[0]); Assert.AreEqual(dbFieldForce.Distributors[0].Id, distributor.Id); Assert.AreEqual(dbFieldForce.Distributors[0].Name, distributor.Name); Assert.AreEqual(dbFieldForce.Distributors[0].Name, distributor.Name); }
public async Task <IHttpActionResult> SaveMarketHierarchyAsync(MarketHierarchyDto record) { MarketHierarchy market = null; MarketHierarchy parent = null; if (ModelState.IsValid) { try { if (record == null) { return(BadRequest()); } if (record.ParentId != null) { parent = _unitOfWork.MarketHierarchies.Get(record.ParentId.Value); if (parent == null) { return(BadRequest("Invalid parent market id")); } } if (record.Id != null) { market = _unitOfWork.MarketHierarchies.Get(record.Id.Value); if (market == null) { return(BadRequest("Invalid market id")); } market.UpdatedBy = "web:api"; market.UpdatedDate = DateTime.Now; } else { market = new MarketHierarchy(); _unitOfWork.MarketHierarchies.Add(market); market.CreatedBy = "web:api"; } market.Code = record.Code; market.Name = record.Name; market.Type = record.Type; market.Parent = parent; await _unitOfWork.CompleteAsync(); return(Ok(new { status = "success" })); } catch (Exception ex) { if (_logger.IsDebugEnabled) { _logger.Debug(ex); return(InternalServerError(ex)); } return(InternalServerError()); } } else { return(BadRequest(ModelState)); } }