public ActionResult Create(EnrolledServiceModel lookupEnrolledService)
 {
     if ("#FFFFFF" == "#" + lookupEnrolledService.ServiceColor)
     {
         ModelState.AddModelError("SelectColorError", "please select any other color!");
         return(View(lookupEnrolledService));
     }
     if (db.LookupEnrolledServices.Count(a => a.ServiceColor == "#" + lookupEnrolledService.ServiceColor) > 0)
     {
         ModelState.AddModelError("ServiceColorError", "Already exists!");
         return(View(lookupEnrolledService));
     }
     if (ModelState.IsValid)
     {
         var EnrolledServicesModel = db.LookupEnrolledServices.Add(new LookupEnrolledService
         {
             ServiceName       = lookupEnrolledService.ServiceName,
             ServiceDecription = lookupEnrolledService.ServiceDecription,
             CreatedBy         = CurrentUser.Id,
             CreatedOn         = DateTime.UtcNow,
             BusinessId        = (int)CurrentBusinessId,
             ServiceColor      = "#" + lookupEnrolledService.ServiceColor,
             IsActive          = true,
             ImportMode        = lookupEnrolledService.ImportMode,
             BoxUrl            = lookupEnrolledService.ImportMode == (int)EBP.Business.Enums.ServiceReportImportModes.BoxAPI ? lookupEnrolledService.BoxUrl : null,
         });
         if (db.SaveChanges() > 0)
         {
             string        rootPath = Server.MapPath("~/Assets");
             string        path     = Path.Combine(rootPath, CurrentBusinessId.ToString(), "Sales", lookupEnrolledService.ServiceName.Replace(" ", "").ToString());
             DirectoryInfo dir      = new DirectoryInfo(path);
             if (!dir.Exists)
             {
                 dir.Create();
             }
             #region FTP
             if (lookupEnrolledService.ImportMode == (int)EBP.Business.Enums.ServiceReportImportModes.Ftp)
             {
                 db.ServiceFtpInfoes.Add(new ServiceFtpInfo
                 {
                     HostName   = lookupEnrolledService.HostName,
                     Protocol   = lookupEnrolledService.Protocol,
                     Username   = lookupEnrolledService.Username,
                     Password   = lookupEnrolledService.Password,
                     RemotePath = lookupEnrolledService.RemotePath,
                     PortNumber = lookupEnrolledService.PortNumber,
                     ServiceId  = EnrolledServicesModel.Id
                 });
                 db.SaveChanges();
             }
             #endregion
         }
         return(RedirectToAction("Index"));
     }
     return(View(lookupEnrolledService));
 }
        public IHttpActionResult UpdateServiceById(EnrolledServiceModel serviceModel)
        {
            var response = new DataResponse <EntityServices>();

            if (ModelState.IsValid)
            {
                serviceModel.CreatedBy  = CurrentUserId;
                serviceModel.BusinessId = CurrentBusinessId.Value;

                EntityServices entityService = new EntityServices();
                entityService.Id                = serviceModel.Id;
                entityService.BusinessId        = serviceModel.BusinessId;
                entityService.ServiceName       = serviceModel.ServiceName;
                entityService.ServiceDecription = serviceModel.ServiceDecription;
                entityService.ServiceColor      = "#" + serviceModel.ServiceColor;
                entityService.IsActive          = true;
                entityService.ImportMode        = serviceModel.ImportMode;
                entityService.FtpInfo           = new EntityServiceFtpInfo();
                entityService.BoxUrl            = serviceModel.BoxUrl;
                if (serviceModel.FtpInfo != null)
                {
                    entityService.FtpInfo.Host       = serviceModel.FtpInfo.Host;
                    entityService.FtpInfo.Username   = serviceModel.FtpInfo.Username;
                    entityService.FtpInfo.Passsword  = serviceModel.FtpInfo.Passsword;
                    entityService.FtpInfo.Protocol   = serviceModel.FtpInfo.Protocol;
                    entityService.FtpInfo.RemotePath = serviceModel.FtpInfo.RemotePath;
                    entityService.FtpInfo.PortNumber = serviceModel.FtpInfo.PortNumber;
                }

                response = new RepositoryEnrolledServices().Update(entityService);
                if (response.Status == DataResponseStatus.OK)
                {
                    string        rootPath = HttpContext.Current.Server.MapPath("~/Assets");
                    string        path     = Path.Combine(rootPath, CurrentBusinessId.ToString(), "Sales", response.Model.ServiceName.Replace(" ", "").ToString());
                    DirectoryInfo dir      = new DirectoryInfo(path);
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }
                }

                return(Ok <DataResponse>(response));
            }
            else
            {
                var errorList = ModelState.Where(a => a.Value.Errors.Any()).Select(s => new
                {
                    Key     = s.Key.Split('.').Last(),
                    Message = s.Value.Errors[0].ErrorMessage
                });
                return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = errorList }));
            }
        }
 public ActionResult Edit(EnrolledServiceModel lookupEnrolledService)
 {
     if ("#FFFFFF" == "#" + lookupEnrolledService.ServiceColor)
     {
         ModelState.AddModelError("SelectColorError", "please select any other color!");
         return(View(lookupEnrolledService));
     }
     if (db.LookupEnrolledServices.Count(a => a.Id != lookupEnrolledService.Id && a.ServiceColor == "#" + lookupEnrolledService.ServiceColor) > 0)
     {
         ModelState.AddModelError("ServiceColorError", "Already exists!");
         return(View(lookupEnrolledService));
     }
     if (ModelState.IsValid)
     {
         string rootPath = Server.MapPath("~/Assets");
         var    model    = db.LookupEnrolledServices.Find(lookupEnrolledService.Id);
         string OldPath  = Path.Combine(rootPath, CurrentBusinessId.ToString(), "Sales", model.ServiceName.Replace(" ", "").ToString());
         model.ServiceName       = lookupEnrolledService.ServiceName;
         model.ServiceDecription = lookupEnrolledService.ServiceDecription;
         model.IsActive          = lookupEnrolledService.IsActive;
         model.UpdatedBy         = CurrentUser.Id;
         model.UpdatedOn         = DateTime.UtcNow;
         model.ServiceColor      = "#" + lookupEnrolledService.ServiceColor;
         model.ImportMode        = lookupEnrolledService.ImportMode;
         model.BoxUrl            = lookupEnrolledService.ImportMode == (int)EBP.Business.Enums.ServiceReportImportModes.BoxAPI ? lookupEnrolledService.BoxUrl : null;
         if (db.SaveChanges() > 0)
         {
             string        NewPath = Path.Combine(rootPath, CurrentBusinessId.ToString(), "Sales", model.ServiceName.Replace(" ", "").ToString());
             DirectoryInfo dir     = new DirectoryInfo(NewPath);
             DirectoryInfo oldDir  = new DirectoryInfo(OldPath);
             if (oldDir.Exists)
             {
                 if (OldPath != NewPath)
                 {
                     System.IO.Directory.Move(OldPath, NewPath);
                 }
             }
             else
             {
                 if (!dir.Exists)
                 {
                     dir.Create();
                 }
             }
             if (lookupEnrolledService.ImportMode == (int)EBP.Business.Enums.ServiceReportImportModes.Ftp)
             {
                 var ftpModel = model.ServiceFtpInfoes.FirstOrDefault(a => a.ServiceId == lookupEnrolledService.Id);
                 if (ftpModel != null)
                 {
                     ftpModel.Protocol   = lookupEnrolledService.Protocol;
                     ftpModel.HostName   = lookupEnrolledService.HostName;
                     ftpModel.Username   = lookupEnrolledService.Username;
                     ftpModel.Password   = lookupEnrolledService.Password;
                     ftpModel.PortNumber = lookupEnrolledService.PortNumber;
                     ftpModel.RemotePath = lookupEnrolledService.RemotePath;
                     db.SaveChanges();
                 }
                 else
                 {
                     db.ServiceFtpInfoes.Add(new ServiceFtpInfo
                     {
                         HostName   = lookupEnrolledService.HostName,
                         Protocol   = lookupEnrolledService.Protocol,
                         Username   = lookupEnrolledService.Username,
                         Password   = lookupEnrolledService.Password,
                         RemotePath = lookupEnrolledService.RemotePath,
                         PortNumber = lookupEnrolledService.PortNumber,
                         ServiceId  = lookupEnrolledService.Id
                     });
                     db.SaveChanges();
                 }
             }
         }
         return(RedirectToAction("Index"));
     }
     return(View(lookupEnrolledService));
 }