public Guid SaveStatus(AffiliateProgramDTO _Dto, Guid Id, int EntityState)
        {
            AffiliateProgramMaster AffiliateProgram = new AffiliateProgramMaster();

            AffiliateProgram = db.AffiliateProgramMasters.Where(o => o.Id == Id).FirstOrDefault();

            if (AffiliateProgram != null)
            {
                AffiliateProgram.DeactivationDate = DateTime.Now;

                if (AffiliateProgram.StatusCode == EMPConstants.InActive)
                {
                    AffiliateProgram.StatusCode = EMPConstants.Active;
                }
                else if (AffiliateProgram.StatusCode == EMPConstants.Active)
                {
                    AffiliateProgram.StatusCode = EMPConstants.InActive;
                }

                if (EntityState == (int)System.Data.Entity.EntityState.Modified)
                {
                    AffiliateProgram.LastUpdatedDate = DateTime.Now;
                    AffiliateProgram.LastUpdatedBy   = _Dto.UserId;
                    db.Entry(AffiliateProgram).State = System.Data.Entity.EntityState.Modified;
                }
            }

            try
            {
                db.SaveChanges();
                db.Dispose();
                return(AffiliateProgram.Id);
            }

            catch (DbUpdateConcurrencyException)
            {
                if (!IsExists(AffiliateProgram.Id))
                {
                    return(Guid.Empty);
                }
                else
                {
                    throw;
                }
            }
        }
        public IHttpActionResult PostAffiliateProgramMaster(AffiliateProgramDTO data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;
            string filePath = SaveDoc(hfc);

            if (!string.IsNullOrEmpty(filePath))
            {
                data.DocumentPath = filePath;
            }

            Guid id            = data.Id;
            int  EntityStateId = 0;

            if (id == Guid.Empty)
            {
                id = Guid.NewGuid();
                //user.Id = id;
                EntityStateId = (int)EntityState.Added;
            }
            else
            {
                EntityStateId = (int)EntityState.Modified;
            }

            int result = _AffiliateProgramService.Save(data, id, EntityStateId);

            data.Id = id;
            if (result == -1)
            {
                return(StatusCode(HttpStatusCode.NotModified));
            }
            else if (result == 0)
            {
                return(StatusCode(HttpStatusCode.NotAcceptable));
            }
            return(Ok(id));
        }
        public IHttpActionResult PutUserMaster(Guid id, AffiliateProgramDTO user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.Id)
            {
                return(BadRequest());
            }

            int EntityStateId = (int)EntityState.Modified;

            Guid result = _AffiliateProgramService.SaveStatus(user, id, EntityStateId);

            if (result == Guid.Empty)
            {
                return(NotFound());
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public int Save(AffiliateProgramDTO _Dto, Guid Id, int EntityState)
        {
            AffiliateProgramMaster _AffiliateProgramMaster = new AffiliateProgramMaster();

            if (_Dto != null)
            {
                _AffiliateProgramMaster.Id               = Id;
                _AffiliateProgramMaster.Name             = _Dto.Name;
                _AffiliateProgramMaster.Cost             = _Dto.Cost;
                _AffiliateProgramMaster.ActivationDate   = DateTime.Now;
                _AffiliateProgramMaster.DeactivationDate = DateTime.Now;
                _AffiliateProgramMaster.DocumentPath     = _Dto.DocumentPath;
                _AffiliateProgramMaster.StatusCode       = EMPConstants.Active;
            }

            if (_Dto.Id != null)
            {
                _AffiliateProgramMaster.CreatedBy       = _Dto.UserId;
                _AffiliateProgramMaster.CreatedDate     = DateTime.Now;
                _AffiliateProgramMaster.LastUpdatedBy   = _Dto.UserId;
                _AffiliateProgramMaster.LastUpdatedDate = DateTime.Now;
            }
            else
            {
                _AffiliateProgramMaster.LastUpdatedBy   = _Dto.UserId;
                _AffiliateProgramMaster.LastUpdatedDate = DateTime.Now;
            }

            if (EntityState == (int)System.Data.Entity.EntityState.Modified)
            {
                var ExistAP = db.AffiliateProgramMasters.Where(o => o.Id != Id && o.Name == _Dto.Name).Any();
                if (ExistAP)
                {
                    return(-1);
                }

                db.Entry(_AffiliateProgramMaster).State = System.Data.Entity.EntityState.Modified;
            }
            else
            {
                var ExistAP = db.AffiliateProgramMasters.Where(o => o.Name == _Dto.Name).Any();
                if (ExistAP)
                {
                    return(-1);
                }
                db.AffiliateProgramMasters.Add(_AffiliateProgramMaster);
            }


            if (_Dto.Entities.ToList().Count > 0)
            {
                if (EntityState == (int)System.Data.Entity.EntityState.Modified)
                {
                    var MapData = db.AffiliationProgramEntityMaps.Where(o => o.AffiliateProgramId == Id).ToList();

                    if (MapData.Count() > 0)
                    {
                        db.AffiliationProgramEntityMaps.RemoveRange(MapData);
                    }
                }

                List <AffiliationProgramEntityMap> _AffiliateEntityMapDTOList = new List <AffiliationProgramEntityMap>();
                foreach (EntityDTO item in _Dto.Entities)
                {
                    AffiliationProgramEntityMap _AffiliateEntityMap = new AffiliationProgramEntityMap();
                    _AffiliateEntityMap.Id = Guid.NewGuid();
                    _AffiliateEntityMap.AffiliateProgramId = _AffiliateProgramMaster.Id;
                    _AffiliateEntityMap.EntityId           = item.Id;
                    _AffiliateEntityMapDTOList.Add(_AffiliateEntityMap);
                }
                db.AffiliationProgramEntityMaps.AddRange(_AffiliateEntityMapDTOList);
            }
            try
            {
                db.SaveChanges();
                return(1);
            }
            catch (DbUpdateConcurrencyException)
            {
                return(0);
            }
        }