Пример #1
0
        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));
            }
        }
Пример #3
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
            }
        }
Пример #8
0
        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);
        }
Пример #9
0
        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));
            }
        }