예제 #1
0
        public IHttpActionResult DeleteService(int serviceid)
        {
            var repository = new RepositoryEnrolledServices();
            var response   = repository.DeleteService(serviceid);

            return(Ok <DataResponse>(response));
        }
예제 #2
0
        public IHttpActionResult DeleteReportColumn(int ColumnId)
        {
            var repository = new RepositoryEnrolledServices();
            var response   = repository.DeleteReportColumn(ColumnId);

            return(Ok <DataResponse>(response));
        }
예제 #3
0
        public void ImportFiles(string basePath)
        {
            RepositoryEnrolledServices repositoryEnrolledService = new RepositoryEnrolledServices();
            var enrolledServices = repositoryEnrolledService.GetServicesByImportMode(ServiceReportImportModes.Ftp);

            if (enrolledServices.Model == null || enrolledServices.Model.List.Count() == 0)
            {
                return;
            }


            List <DownloadSettings> DownloadSettings = new List <DownloadSettings>();
            bool isSuccess = false;

            foreach (var service in enrolledServices.Model.List)
            {
                string importPath = Path.Combine(basePath, service.BusinessId.ToString(), "Sales", service.ServiceName);

                #region Ftp Details

                DownloadSettings.Add(new DownloadSettings
                {
                    SessionOptions = new SessionOptions
                    {
                        Protocol   = (Protocol)service.FtpInfo.Protocol,
                        HostName   = service.FtpInfo.Host,
                        UserName   = service.FtpInfo.Username,
                        Password   = service.FtpInfo.Passsword,
                        PortNumber = service.FtpInfo.PortNumber ?? 21,
                        //GiveUpSecurityAndAcceptAnySshHostKey = true
                    },
                    RemotePath               = service.FtpInfo.RemotePath,
                    DestinationPath          = importPath,
                    RemoteArchivesFolderPath = "/Archives/"
                });

                #endregion

                //Download Files from the FTP to the specified directory
retryDownload:
                bool needSleep = false;
                isSuccess      = new SyncMessageFiles().Download(DownloadSettings, out needSleep);
                if (needSleep)
                {
                    Thread.Sleep((int)(float.Parse(ConfigurationManager.AppSettings["SleepTime"]) * 60000));
                    goto retryDownload;
                }
                isSuccess = true;

                if (isSuccess)
                {
                    // Download success
                }
            }
        }
        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 }));
            }
        }
예제 #5
0
        public IHttpActionResult GetServiceById(int?Id)
        {
            var response   = new DataResponse <EntityServices>();
            var repository = new RepositoryEnrolledServices();

            if (Id.HasValue)
            {
                response = repository.GetServiceById(Id.Value);
            }
            else
            {
                response.Model = new EntityServices();
            }
            return(Ok <DataResponse>(response));
        }
예제 #6
0
        public IHttpActionResult GetByFilter(FilterServices filter)
        {
            var repository = new RepositoryEnrolledServices();

            if (filter == null)
            {
                filter = new FilterServices {
                    PageSize = 25, CurrentPage = 1
                }
            }
            ;
            var response = repository.GetServices(filter, CurrentBusinessId.Value);

            return(Ok <DataResponse <EntityList <EntityServices> > >(response));
        }
        public IHttpActionResult GetReportColumnLookupById(int id)
        {
            var response   = new DataResponse <EntityColumnLookup>();
            var repository = new RepositoryEnrolledServices();

            if (id > 0)
            {
                response = repository.GetReportColumnLookupById(id);
            }
            else
            {
                response.Model = new EntityColumnLookup();
            }
            return(Ok <DataResponse>(response));
        }
        public IHttpActionResult GetReportColumnById(int?id)
        {
            var response   = new DataResponse <EntityReportColumn>();
            var repository = new RepositoryEnrolledServices();

            if (id.HasValue)
            {
                response = repository.GetReportColumnById(id.Value);
            }
            else
            {
                response.Model = new EntityReportColumn();
            }
            return(Ok <DataResponse>(response));
        }
예제 #9
0
        public IHttpActionResult InsertReportColumnData(EntityReportColumn model)
        {
            string[] reservedFields = new string[] { "Id", "BusinessId", "ServiceId", "PatientId", "PatientFirstName", "PatientLastName", "SpecimenCollectionDate", "SpecimenReceivedDate", "ReportedDate", "PracticeId",
                                                     "PracticeName", "ProviderId", "ProviderFirstName", "ProviderLastName", "ProviderNpi", "RepId", "RepFirstName", "RepLastName", "CreatedOn", "CreatedBy",
                                                     "UpdatedOn", "UpdatedBy", "OldId", "IsColumnValuesImported", "OldReportId" };
            if (reservedFields.Contains(model.ColumnName))
            {
                var error = string.Format("{0} is reserved, please choose another column name", model.ColumnName);
                return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = error }));
            }
            var response = new DataResponse <EntityReportColumn>();

            if (ModelState.IsValid)
            {
                model.UpdatedBy  = model.CreatedBy = CurrentUserId;
                model.BusinessId = CurrentBusinessId.Value;
                if (model.Id > 0)
                {
                    response = new RepositoryEnrolledServices().UpdateRportColumn(model);
                }
                else
                {
                    response = new RepositoryEnrolledServices().InsertReportColumn(model);
                }
                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 IHttpActionResult UpdateReportColumnData(EntityReportColumn model)
        {
            string[] reservedFields = new string[] { "Id", "BusinessId", "ServiceId", "PatientId", "PatientFirstName", "PatientLastName", "SpecimenCollectionDate", "SpecimenReceivedDate", "ReportedDate", "PracticeId",
                                                     "PracticeName", "ProviderId", "ProviderFirstName", "ProviderLastName", "ProviderNpi", "RepId", "RepFirstName", "RepLastName", "CreatedOn", "CreatedBy",
                                                     "UpdatedOn", "UpdatedBy", "OldId", "IsColumnValuesImported", "OldReportId" };
            if (reservedFields.Contains(model.ColumnName))
            {
                var error = string.Format("{0} is reserved, please choose another column name", model.ColumnName);
                return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = error }));
            }
            var response = new DataResponse <EntityReportColumn>();

            if (ModelState.IsValid)
            {
                model.UpdatedBy  = model.CreatedBy = CurrentUserId;
                model.BusinessId = CurrentBusinessId.Value;
                EntityReportColumn entityReportColumn = new EntityReportColumn();
                entityReportColumn.Id                     = model.Id;
                entityReportColumn.ColumnName             = model.ColumnName.Replace(" ", "");
                entityReportColumn.BusinessId             = model.BusinessId;
                entityReportColumn.CreatedBy              = model.CreatedBy;
                entityReportColumn.CreatedOn              = System.DateTime.UtcNow;
                entityReportColumn.UpdatedBy              = model.UpdatedBy;
                entityReportColumn.UpdatedOn              = System.DateTime.UtcNow;
                entityReportColumn.ServiceId              = model.ServiceId;
                entityReportColumn.DisplayInFilter        = model.DisplayInFilter;
                entityReportColumn.IsMandatory            = model.IsMandatory;
                entityReportColumn.ShowInGrid             = model.ShowInGrid;
                entityReportColumn.DisplayName            = model.DisplayName;
                entityReportColumn.ColumnType             = model.ColumnType;
                entityReportColumn.InputType              = model.InputType;
                entityReportColumn.RolePrivilegeIds       = new List <int>();
                entityReportColumn.DepartmentPrivilegeIds = new List <int>();
                entityReportColumn.UserPrivilegeIds       = new List <int>();

                foreach (var item in model.RolePrivilegeIds)
                {
                    entityReportColumn.RolePrivilegeIds.Add(item);
                }
                foreach (var item in model.DepartmentPrivilegeIds)
                {
                    entityReportColumn.DepartmentPrivilegeIds.Add(item);
                }
                foreach (var item in model.UserPrivilegeIds)
                {
                    entityReportColumn.UserPrivilegeIds.Add(item);
                }
                response = new RepositoryEnrolledServices().UpdateRportColumn(entityReportColumn);

                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 }));
            }
        }