public ActionResult CreateCustVisitActivity(CustVisitActivityModel entity)
        {
            if (_CustVisitActivityManager.getByID(entity.VisitedDate,entity.CustomerID,User.Identity.Name)!=null)
            {
                ModelState.AddModelError("*", "This Customer and Visited date are duplicated in record.");
                return View(new CustVisitActivityModel { CustomerID = entity.CustomerID }).WithErrorMessage("Duplicated record!");
            }

            try
            {
                // TODO: Add insert logic here
                entity.AttachGroupID = Guid.NewGuid();
                entity.CreatedBy = User.Identity.Name;
                entity.CreatedDate = DateTime.Today;

                _CustVisitActivityManager.Save(entity);

                List<FileAttachmentModel> FAList = (List<FileAttachmentModel>)Session["Attachment"];

                if (FAList != null)
                {
                    foreach (FileAttachmentModel item in FAList)
                    {
                        _FileAttachmentManager.Save(item, entity.AttachGroupID, User.Identity.Name);
                    }
                }
                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                var modal = new HandleErrorInfo(ex, "CustVisitActivity", "CreateCustVisitActivity");
                return View("Error", modal);
            }
        }
        public void Save(CustVisitActivityModel entity)
        {
            objCustVisitActivity = new CRM_CustVisitActivityRepository();

            Mapper.CreateMap<CustVisitActivityModel, CRM_CustVisitActivity>();

            CRM_CustVisitActivity objSave = new CRM_CustVisitActivity();

            objSave = Mapper.Map(entity, objSave);

            objCustVisitActivity.Add(objSave);
        }
        public CustVisitActivityModel getByID(DateTime visitDate, string customerID, string createdBy)
        {
            Mapper.CreateMap<CRM_CustVisitActivity, CustVisitActivityModel>();
            objCustVisitActivity = new CRM_CustVisitActivityRepository();

            CRM_CustVisitActivity objEntity = objCustVisitActivity.GetSingle(v => v.VisitedDate == visitDate && v.CustomerID == customerID && v.CreatedBy == createdBy);

            CustVisitActivityModel objResult = new CustVisitActivityModel();

            objResult = Mapper.Map(objEntity, objResult);

            return objResult;
        }
        public void Delete(CustVisitActivityModel entity)
        {
            objCustVisitActivity = new CRM_CustVisitActivityRepository();

            if (objCustVisitActivity.GetAll(v => v.VisitedDate == entity.VisitedDate && v.CustomerID == entity.CustomerID
                && v.CreatedBy == entity.CreatedBy).Count() > 0)
            {
                CRM_CustVisitActivity deleteRecord = objCustVisitActivity.GetSingle(v => v.VisitedDate == entity.VisitedDate && v.CustomerID == entity.CustomerID
                && v.CreatedBy == entity.CreatedBy);

                objCustVisitActivity.Delete(deleteRecord);
            }
        }
        public void Update(CustVisitActivityModel entity)
        {
            objCustVisitActivity = new CRM_CustVisitActivityRepository();

            Mapper.CreateMap<CustVisitActivityModel, CRM_CustVisitActivity>();

            if (objCustVisitActivity.GetAll(v => v.VisitedDate == entity.VisitedDate && v.CustomerID == entity.CustomerID
                && v.CreatedBy == entity.CreatedBy).Count() > 0)
            {
                CRM_CustVisitActivity updateRecord = objCustVisitActivity.GetSingle(v => v.VisitedDate == entity.VisitedDate && v.CustomerID == entity.CustomerID
                && v.CreatedBy == entity.CreatedBy);

                updateRecord = Mapper.Map(entity, updateRecord);

                objCustVisitActivity.Update(updateRecord);
            }
        }
        public ActionResult EditCustVisitActivity(string id, DateTime visited, string createdBy, CustVisitActivityModel entity)
        {
            try
            {
                // TODO: Add update logic here
                entity.CustomerID = id;
                entity.VisitedDate = visited;
                entity.CreatedBy = createdBy;
                entity.AttachGroupID = (Guid)Session["AttachGroupID"];
                entity.ModifiedBy = User.Identity.Name;
                entity.ModifiedDate = DateTime.Today;

                _CustVisitActivityManager.Update(entity);

                #region "Attach Saving"

                List<FileAttachmentModel> FAList = (List<FileAttachmentModel>)Session["Attachment"];

                if (FAList != null)
                {
                    foreach (FileAttachmentModel item in FAList)
                    {
                        _FileAttachmentManager.Delete(item, entity.AttachGroupID);
                        _FileAttachmentManager.Save(item, entity.AttachGroupID, User.Identity.Name);
                    }
                }

                #endregion

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        public ActionResult DeleteCustVisitActivity(string id, DateTime visited, string createdBy, CustVisitActivityModel entity)
        {
            try
            {
                // TODO: Add delete logic here
                entity.CustomerID = id;
                entity.VisitedDate = visited;
                entity.CreatedBy = createdBy;
                entity.AttachGroupID = (Guid)Session["AttachGroupID"];

                _CustVisitActivityManager.Delete(entity);

                #region "Attach Saving"

                List<FileAttachmentModel> FAList = (List<FileAttachmentModel>)Session["Attachment"];

                if (FAList != null)
                {
                    foreach (FileAttachmentModel item in FAList)
                    {
                        var Delfile = System.IO.Path.Combine(Server.MapPath("~/UploadFiles"), item.ServerFileName);
                        if (System.IO.File.Exists(Delfile))
                        {
                            System.IO.File.Delete(Delfile);
                        }

                        _FileAttachmentManager.Delete(item, entity.AttachGroupID);
                    }
                }

                #endregion

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }