コード例 #1
0
        public static void Persist(JMoviesEntities entities, Person person)
        {
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = IsolationLevel.Serializable;
            options.Timeout        = new TimeSpan(0, 10, 0);
            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                Person savedPerson = entities.Person.FirstOrDefault(e => e.IMDbID == person.IMDbID);

                bool saved = false;
                if (savedPerson != null)
                {
                    person.ID = savedPerson.ID;
                    saved     = true;
                }
                else
                {
                    person.ID = CommonDBHelper.GetNewID <Person>(entities, e => e.ID);
                }

                Person trimmedPerson = GetTrimmedPerson(person);
                if (!saved)
                {
                    EntityEntry entry = entities.Person.Add(trimmedPerson);
                }
                entities.SaveChanges();
                HandleImages(entities, person, savedPerson);
                CommonDBHelper.DetachAllEntries(entities);
                CommonDBHelper.MarkEntityAsUpdated(entities, trimmedPerson, new string[] { "PersonType", "PrimaryImage", "PrimaryImageID" }, true);
                entities.SaveChanges();
                scope.Complete();
            }
        }
コード例 #2
0
        private static void HandleGenres(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.Genres != null)
            {
                foreach (Genre genre in movie.Genres.ToArray())
                {
                    EntityEntry entry = null;
                    bool        saved = false;
                    if (savedMovie != null)
                    {
                        Genre savedGenre = entities.Genre.FirstOrDefault(e => e.Identifier == genre.Identifier && genre.ProductionID == savedMovie.ID);
                        if (savedGenre != null)
                        {
                            genre.ID = savedGenre.ID;
                            entry    = CommonDBHelper.MarkEntityAsUpdated(entities, genre);
                            saved    = true;
                        }
                    }

                    genre.ProductionID = production.ID;
                    if (!saved)
                    {
                        genre.ID = CommonDBHelper.GetNewID <Genre>(entities, e => e.ID);
                        entry    = entities.Genre.Add(genre);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #3
0
        private static void HandleKeywords(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.Keywords != null)
            {
                foreach (Keyword keyword in movie.Keywords.ToArray())
                {
                    EntityEntry entry = null;
                    bool        saved = false;
                    if (savedMovie != null)
                    {
                        Keyword savedKeyword = entities.Keyword.FirstOrDefault(e => e.Identifier == keyword.Identifier && keyword.ProductionID == movie.ID);
                        if (savedKeyword != null)
                        {
                            keyword.ID = savedKeyword.ID;
                            entry      = CommonDBHelper.MarkEntityAsUpdated(entities, keyword);
                            saved      = true;
                        }
                    }

                    keyword.ProductionID = production.ID;
                    if (!saved)
                    {
                        keyword.ID = CommonDBHelper.GetNewID <Keyword>(entities, e => e.ID);
                        entry      = entities.Keyword.Add(keyword);
                    }

                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #4
0
        public static string GetDatafromFTP(string filename, string id)
        {
            string HOST_NAME = "-";
            string USER_NAME = "-";
            string PASSWORD  = "******";

            CommonDBHelper Repo = CommonDBHelper.Instance;

            List <FTPCredential> data = Repo.GetFtpCredential(id, "GetFtpDownloadCredential").ToList();

            foreach (FTPCredential row in data)
            {
                HOST_NAME = row.HOST_NAME;
                USER_NAME = row.USER_NAME;
                PASSWORD  = row.PASSWORD;
            }

            NetworkCredential cred = new NetworkCredential(USER_NAME, PASSWORD);

            WebClient request = new WebClient();

            request.Credentials = new NetworkCredential(USER_NAME, PASSWORD);
            List <DirectoryItem> listing = GetDirectoryInformation(HOST_NAME, USER_NAME, PASSWORD);//"ftp://ftp.mywebsite.com/directory", "username", "password");
            string name = listing[0].Name;

            byte[] filedata = request.DownloadData(HOST_NAME + name); //Path.GetFileName(filename));
            using (FileStream file = File.Create(filename + name))
            {
                file.Write(filedata, 0, filedata.Length);
                file.Close();
            }

            return(filename + name);
        }
コード例 #5
0
        private static void HandleCompanies(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.ProductionCompanies != null)
            {
                foreach (Company company in movie.ProductionCompanies.ToArray())
                {
                    EntityEntry entry = null;
                    bool        saved = false;
                    if (savedMovie != null)
                    {
                        Company savedCompany = entities.Company.FirstOrDefault(e => e.Name == company.Name && company.ProductionID == savedMovie.ID);
                        if (savedCompany != null)
                        {
                            company.ID = savedCompany.ID;
                            entry      = CommonDBHelper.MarkEntityAsUpdated(entities, company);
                            saved      = true;
                        }
                    }

                    company.ProductionID = production.ID;
                    if (!saved)
                    {
                        company.ID = CommonDBHelper.GetNewID <Company>(entities, e => e.ID);
                        entry      = entities.Company.Add(company);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
                movie.ProductionCompanies = null;
            }
        }
コード例 #6
0
        private static void HandleAKAs(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.AKAs != null)
            {
                foreach (AKA aka in movie.AKAs.ToArray())
                {
                    EntityEntry entry = null;
                    bool        saved = false;
                    if (savedMovie != null)
                    {
                        AKA savedAKA = entities.AKA.FirstOrDefault(e => e.Name == aka.Name && e.Description == aka.Description && aka.ProductionID == savedMovie.ID);
                        if (savedAKA != null)
                        {
                            aka.ID = savedAKA.ID;
                            entry  = CommonDBHelper.MarkEntityAsUpdated(entities, aka);
                            saved  = true;
                        }
                    }

                    aka.ProductionID = production.ID;
                    if (!saved)
                    {
                        aka.ID = CommonDBHelper.GetNewID <AKA>(entities, e => e.ID);
                        entry  = entities.AKA.Add(aka);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #7
0
        private static void HandleRatings(JMoviesEntities entities, Production production, Production savedProduction)
        {
            if (production.Rating != null)
            {
                EntityEntry entry = null;
                production.Rating.DataSourceID = entities.DataSource.FirstOrDefault(e => e.Identifier == production.Rating.DataSource.Identifier).ID;
                production.Rating.DataSource   = null;

                production.Rating.ProductionID = production.ID;
                production.Rating.Production   = null;

                Rating existingRating = null;
                if (savedProduction != null)
                {
                    existingRating = entities.Rating.FirstOrDefault(e => e.ProductionID == savedProduction.ID);
                }

                if (existingRating != null)
                {
                    production.Rating.ID = existingRating.ID;
                    entry = CommonDBHelper.MarkEntityAsUpdated(entities, production.Rating);
                }
                else
                {
                    production.Rating.ID = CommonDBHelper.GetNewID <Rating>(entities, e => e.ID);
                    entry = entities.Rating.Add(production.Rating);
                }
                entities.SaveChanges();
                CommonDBHelper.DetachAllEntries(entities);
            }
        }
コード例 #8
0
        private static void HandleCountries(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.Countries != null)
            {
                foreach (ProductionCountry productionCountry in movie.Countries.ToArray())
                {
                    EntityEntry entry        = null;
                    EntityEntry countryEntry = null;
                    Country     savedCountry = entities.Country.FirstOrDefault(e => e.Identifier == productionCountry.Country.Identifier);
                    if (savedCountry != null)
                    {
                        productionCountry.Country.ID = savedCountry.ID;
                        countryEntry = CommonDBHelper.MarkEntityAsUpdated(entities, productionCountry.Country);
                    }
                    else
                    {
                        productionCountry.Country.ID = CommonDBHelper.GetNewID <Country>(entities, e => e.ID);
                        countryEntry = entities.Country.Add(productionCountry.Country);
                    }
                    entities.SaveChanges();
                    productionCountry.ProductionID = productionCountry.Production.ID;
                    productionCountry.Production   = null;
                    productionCountry.CountryID    = productionCountry.Country.ID;
                    productionCountry.Country      = null;

                    ProductionCountry savedProductionCountry = null;
                    if (savedMovie != null)
                    {
                        savedProductionCountry = entities.ProductionCountry.FirstOrDefault(e => e.ProductionID == savedMovie.ID && e.CountryID == productionCountry.CountryID);
                    }

                    if (savedProductionCountry != null)
                    {
                        productionCountry.ID = savedProductionCountry.ID;
                        entry = CommonDBHelper.MarkEntityAsUpdated(entities, productionCountry);
                    }
                    else
                    {
                        CommonDBHelper.DetachAllEntries(entities);
                        productionCountry.ID = CommonDBHelper.GetNewID <ProductionCountry>(entities, e => e.ID);
                        entry = entities.ProductionCountry.Add(productionCountry);
                    }

                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #9
0
        private static void HandleCharacters(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie movie      = production as Movie;
            Movie savedMovie = savedProduction as Movie;

            if (movie != null && movie.Credits != null)
            {
                foreach (Credit credit in movie.Credits.ToArray())
                {
                    if (credit is ActingCredit)
                    {
                        ActingCredit actingCredit = credit as ActingCredit;
                        foreach (Character character in actingCredit.Characters.ToArray())
                        {
                            EntityEntry entry = null;
                            bool        saved = false;
                            if (savedMovie != null)
                            {
                                if (savedMovie.Credits == null)
                                {
                                    savedMovie.Credits = entities.Credit.Where(e => e.ProductionID == savedMovie.ID).ToArray();
                                }
                                Character savedCharacter = null;
                                if (savedMovie.Credits != null)
                                {
                                    long[] existingCreditIDs = savedMovie.Credits.Where(x => x.RoleType == CreditRoleType.Acting).Select(x => x.ID).ToArray();
                                    savedCharacter = entities.Character.FirstOrDefault(currentCharacter => existingCreditIDs.Contains(currentCharacter.CreditID) && currentCharacter.Name == character.Name && currentCharacter.IMDbID == character.IMDbID);
                                }

                                if (savedCharacter != null)
                                {
                                    character.ID = savedCharacter.ID;
                                    entry        = CommonDBHelper.MarkEntityAsUpdated(entities, character, new string[] { "CharacterType" });
                                    saved        = true;
                                }
                            }

                            character.CreditID = actingCredit.ID;
                            if (!saved)
                            {
                                character.ID = CommonDBHelper.GetNewID <Character>(entities, e => e.ID);
                                entry        = entities.Character.Add(character);
                            }
                            entities.SaveChanges();
                            CommonDBHelper.DetachAllEntries(entities);
                        }
                    }
                }
            }
        }
コード例 #10
0
        private static void HandleDataSources(JMoviesEntities entities, Production production, Production savedProduction)
        {
            EntityEntry entry = null;

            if (production.Rating != null)
            {
                if (entities.DataSource.FirstOrDefault(e => e.Identifier == production.Rating.DataSource.Identifier) == null)
                {
                    entry = entities.DataSource.Add(production.Rating.DataSource);
                }
            }
            entities.SaveChanges();
            CommonDBHelper.DetachAllEntries(entities);
        }
コード例 #11
0
ファイル: FailedFTP.cs プロジェクト: denapurnama/BMVP_SOURCE
        public static void FTPFailed(string param, string id)
        {
            string HOST_NAME        = "-";
            string USER_NAME        = "-";
            string PASSWORD         = "******";
            string HOST_NAME_FAILED = "-";

            CommonDBHelper Repo = CommonDBHelper.Instance;

            List <FTPCredential> data = Repo.GetFtpCredentialSucc(param, id, "GetFtpDownloadCredential").ToList();

            foreach (FTPCredential row in data)
            {
                HOST_NAME        = row.HOST_NAME;
                HOST_NAME_FAILED = row.HOST_NAME_FAILED;
                USER_NAME        = row.USER_NAME;
                PASSWORD         = row.PASSWORD;
            }

            NetworkCredential cred = new NetworkCredential(USER_NAME, PASSWORD);

            WebClient request = new WebClient();

            request.Credentials = new NetworkCredential(USER_NAME, PASSWORD);

            List <DirectoryItem> listing = GetDirectoryInformation(HOST_NAME, USER_NAME, PASSWORD);//"ftp://ftp.mywebsite.com/directory", "username", "password");

            string name = listing[0].Name;

            //CopyFile(HOST_NAME + name, HOST_NAME_FAILED + name, USER_NAME, PASSWORD);

            System.Net.FtpWebRequest clsRequest = (System.Net.FtpWebRequest)System.Net.WebRequest.Create(HOST_NAME + name);
            clsRequest.Credentials = new System.Net.NetworkCredential(USER_NAME, PASSWORD);
            clsRequest.Method      = System.Net.WebRequestMethods.Ftp.DeleteFile;

            System.Net.FtpWebResponse resp = (FtpWebResponse)clsRequest.GetResponse();
            resp.Close();

            //byte[] filedata = request.DownloadData(HOST_NAME + name); //Path.GetFileName(filename));

            //using (FileStream file = File.Create(filename + name))
            //{
            //    file.Write(filedata, 0, filedata.Length);
            //    file.Close();
            //}

            //return filename + name;
        }
コード例 #12
0
        private static void HandleImages(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Image oldPoster = savedProduction?.Poster;

            if (savedProduction != null && oldPoster == null)
            {
                oldPoster = entities.Image.FirstOrDefault(e => e.ID == savedProduction.PosterID);
            }

            Production trackedProduction = entities.Production.FirstOrDefault(e => e.ID == production.ID);

            if (savedProduction != null && oldPoster != null)
            {
                trackedProduction.PosterID = null;
                trackedProduction.Poster   = null;
                entities.Image.Remove(oldPoster);
                entities.SaveChanges();
            }

            if (production.Poster != null)
            {
                production.Poster.ProductionID = production.ID;
                production.Poster.ID           = CommonDBHelper.GetNewID <Image>(entities, e => e.ID);
                entities.Image.Add(production.Poster);
                trackedProduction.PosterID = production.Poster.ID;
            }
            entities.SaveChanges();
            CommonDBHelper.DetachAllEntries(entities);

            if (production.MediaImages != null)
            {
                foreach (Image image in production.MediaImages)
                {
                    Image savedImage = entities.Image.FirstOrDefault(e => e.URL == image.URL);
                    if (savedImage == null)
                    {
                        image.ID           = CommonDBHelper.GetNewID <Image>(entities, e => e.ID);
                        image.ProductionID = production.ID;
                        entities.Add(image);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #13
0
        private static void HandleImages(JMoviesEntities entities, Person person, Person savedPerson)
        {
            Image oldPrimaryImage = null;

            if (savedPerson != null)
            {
                oldPrimaryImage = entities.Image.FirstOrDefault(e => e.ID == savedPerson.PrimaryImageID);
            }

            Person trackedPerson = entities.Person.FirstOrDefault(e => e.ID == person.ID);

            if (savedPerson != null && oldPrimaryImage != null)
            {
                trackedPerson.PrimaryImage   = null;
                trackedPerson.PrimaryImageID = null;
                entities.Image.Remove(oldPrimaryImage);
                entities.SaveChanges();
            }

            if (person.PrimaryImage != null)
            {
                person.PrimaryImage.PersonID = person.ID;
                person.PrimaryImage.ID       = CommonDBHelper.GetNewID <Image>(entities, e => e.ID);
                entities.Image.Add(person.PrimaryImage);
                trackedPerson.PrimaryImageID = person.PrimaryImage.ID;
            }
            entities.SaveChanges();
            CommonDBHelper.DetachAllEntries(entities);

            if (person.Photos != null)
            {
                foreach (Image image in person.Photos)
                {
                    Image savedImage = entities.Image.FirstOrDefault(e => e.URL == image.URL);
                    if (savedImage == null)
                    {
                        image.ID       = CommonDBHelper.GetNewID <Image>(entities, e => e.ID);
                        image.PersonID = person.ID;
                        entities.Add(image);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #14
0
        public static void Persist(JMoviesEntities entities, Production production)
        {
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = IsolationLevel.Serializable;
            options.Timeout        = new TimeSpan(0, 10, 0);
            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                Production savedProduction = entities.Production.FirstOrDefault(e => e.IMDbID == production.IMDbID);

                bool saved = false;
                if (savedProduction != null)
                {
                    production.ID = savedProduction.ID;
                    saved         = true;
                }
                else
                {
                    production.ID = CommonDBHelper.GetNewID <Production>(entities, e => e.ID);
                }

                Production trimmedProduction = GetTrimmedProduction(production);
                if (!saved)
                {
                    entities.Production.Add(trimmedProduction);
                }
                entities.SaveChanges();
                HandleAKAs(entities, production, savedProduction);
                HandleCompanies(entities, production, savedProduction);
                HandleDataSources(entities, production, savedProduction);
                HandleGenres(entities, production, savedProduction);
                HandleKeywords(entities, production, savedProduction);
                HandleLanguages(entities, production);
                HandleCountries(entities, production, savedProduction);
                HandlePersons(entities, production);
                HandleCharacters(entities, production, savedProduction);
                HandleRatings(entities, production, savedProduction);
                HandleReleaseDates(entities, production, savedProduction);
                HandleImages(entities, production, savedProduction);
                HandleTagLines(entities, production, savedProduction);
                CommonDBHelper.MarkEntityAsUpdated(entities, trimmedProduction, new string[] { "ProductionType", "Poster", "PosterID" }, true);
                entities.SaveChanges();
                scope.Complete();
            }
        }
コード例 #15
0
ファイル: ExportFile.cs プロジェクト: denapurnama/BMVP_SOURCE
        public static void SendDatatoFTP(string localPath, string id)
        {
            string HOST_NAME = "-";
            string USER_NAME = "-";
            string PASSWORD  = "******";

            CommonDBHelper Repo = CommonDBHelper.Instance;

            List <FTPCredential> data = Repo.GetFtpCredential(id, "GetFtpCredential").ToList();

            foreach (FTPCredential row in data)
            {
                HOST_NAME = row.HOST_NAME;
                USER_NAME = row.USER_NAME;
                PASSWORD  = row.PASSWORD;
            }

            NetworkCredential cred = new NetworkCredential(USER_NAME, PASSWORD);

            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(HOST_NAME + Path.GetFileName(localPath));

            request.Proxy  = new WebProxy();
            request.Method = WebRequestMethods.Ftp.UploadFile;

            request.Credentials = new NetworkCredential(USER_NAME, PASSWORD);

            StreamReader source = new StreamReader(localPath);

            byte[] fileContent = Encoding.UTF8.GetBytes(source.ReadToEnd());
            source.Close();
            request.ContentLength = fileContent.Length;

            Stream requestStream = request.GetRequestStream();

            requestStream.Write(fileContent, 0, fileContent.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();

            response.Close();

            File.Delete(localPath);
        }
コード例 #16
0
        private static void HandleLanguages(JMoviesEntities entities, Production production)
        {
            Movie movie = production as Movie;

            if (movie != null && movie.Languages != null)
            {
                foreach (ProductionLanguage productionLanguage in movie.Languages.ToArray())
                {
                    EntityEntry entry            = null;
                    EntityEntry languageEntry    = null;
                    Language    existingLanguage = entities.Language.FirstOrDefault(e => e.Identifier == productionLanguage.Language.Identifier);
                    if (existingLanguage != null)
                    {
                        productionLanguage.Language.ID = existingLanguage.ID;
                        languageEntry = CommonDBHelper.MarkEntityAsUpdated(entities, productionLanguage.Language);
                    }
                    else
                    {
                        productionLanguage.Language.ID = CommonDBHelper.GetNewID <Language>(entities, e => e.ID);
                        languageEntry = entities.Language.Add(productionLanguage.Language);
                    }

                    ProductionLanguage existingProductionLanguage = entities.ProductionLanguage.FirstOrDefault(e => e.Language.Identifier == productionLanguage.Language.Identifier && e.Production.IMDbID == productionLanguage.Production.IMDbID);

                    productionLanguage.ProductionID = productionLanguage.Production.ID;
                    productionLanguage.Production   = null;
                    productionLanguage.LanguageID   = productionLanguage.Language.ID;
                    productionLanguage.Language     = null;
                    if (existingProductionLanguage != null)
                    {
                        productionLanguage.ID = existingProductionLanguage.ID;
                        entry = CommonDBHelper.MarkEntityAsUpdated(entities, productionLanguage);
                    }
                    else
                    {
                        productionLanguage.ID = CommonDBHelper.GetNewID <ProductionLanguage>(entities, e => e.ID);
                        entry = entities.ProductionLanguage.Add(productionLanguage);
                    }
                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #17
0
        private static void HandleReleaseDates(JMoviesEntities entities, Production production, Production savedProduction)
        {
            Movie savedMovie = savedProduction as Movie;

            if (savedMovie != null)
            {
                ReleaseDate[] existingReleaseDates = entities.ReleaseDate.Where(e => e.ProductionID == savedMovie.ID).ToArray();
                entities.ReleaseDate.RemoveRange(existingReleaseDates);
            }

            Movie movie = production as Movie;

            if (movie != null)
            {
                foreach (ReleaseDate releaseDate in movie.ReleaseDates.ToArray())
                {
                    EntityEntry entry = null;
                    if (releaseDate.Country != null)
                    {
                        Country existingCountry = entities.Country.FirstOrDefault(e => e.Identifier == releaseDate.Country.Identifier);
                        if (existingCountry != null)
                        {
                            releaseDate.Country.ID = existingCountry.ID;
                            entry = CommonDBHelper.MarkEntityAsUpdated(entities, releaseDate.Country);
                        }
                        else
                        {
                            releaseDate.Country.ID = CommonDBHelper.GetNewID <Country>(entities, e => e.ID);
                            entry = entities.Country.Add(releaseDate.Country);
                        }
                    }

                    releaseDate.CountryID    = releaseDate.Country.ID;
                    releaseDate.Country      = null;
                    releaseDate.ProductionID = production.ID;
                    releaseDate.ID           = CommonDBHelper.GetNewID <ReleaseDate>(entities, e => e.ID);
                    entities.ReleaseDate.Add(releaseDate);

                    entities.SaveChanges();
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #18
0
ファイル: WebAPIUtil.cs プロジェクト: denapurnama/BMVP_SOURCE
        public static response RequestFile <T>(Dictionary <string, object> parameters, string uri, string jsonConvert, string method) where T : new()
        {
            string   content       = string.Empty;
            dynamic  ajax_array    = new Object();
            response objectRespond = new response();
            string   Errresponse   = string.Empty;
            // string url = ConfigurationManager.AppSettings["TPInterface"];

            CommonDBHelper Repo = CommonDBHelper.Instance;
            string         url  = Repo.getAPIUrl();

            Console.WriteLine("API URL :" + url);
            string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");

            byte[] boundaryBytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.ContentType       = "multipart/form-data; boundary=" + boundary;
            request.UserAgent         = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
            request.Method            = method;
            request.KeepAlive         = true;
            request.Proxy             = WebRequest.DefaultWebProxy;
            request.Credentials       = System.Net.CredentialCache.DefaultCredentials;
            request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

            try
            {
                Console.WriteLine("API Process Start");
                var settings = new JsonSerializerSettings
                {
                    NullValueHandling     = NullValueHandling.Ignore,
                    MissingMemberHandling = MissingMemberHandling.Ignore
                };

                if (parameters != null && parameters.Count > 0)
                {
                    using (Stream requestStream = request.GetRequestStream())
                    {
                        foreach (KeyValuePair <string, object> pair in parameters)
                        {
                            requestStream.Write(boundaryBytes, 0, boundaryBytes.Length);
                            if (pair.Value is FormFile)
                            {
                                FormFile file   = pair.Value as FormFile;
                                string   header = "Content-Disposition: form-data; name=\"" + pair.Key + "\"; filename=\"" + file.Name + "\"\r\nContent-Type: " + file.ContentType + "\r\n\r\n";
                                byte[]   bytes  = System.Text.Encoding.UTF8.GetBytes(header);
                                requestStream.Write(bytes, 0, bytes.Length);
                                byte[] buffer = new byte[32768];
                                int    bytesRead;
                                if (file.Stream == null)
                                {
                                    // upload from file
                                    using (FileStream fileStream = File.OpenRead(file.FilePath))
                                    {
                                        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                                        {
                                            requestStream.Write(buffer, 0, bytesRead);
                                        }
                                        fileStream.Close();
                                    }
                                }
                                else
                                {
                                    // upload from given stream
                                    while ((bytesRead = file.Stream.Read(buffer, 0, buffer.Length)) != 0)
                                    {
                                        requestStream.Write(buffer, 0, bytesRead);
                                    }
                                }
                            }
                            else
                            {
                                string data  = "Content-Disposition: form-data; name=\"" + pair.Key + "\"\r\n\r\n" + pair.Value;
                                byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
                                requestStream.Write(bytes, 0, bytes.Length);
                            }
                        }

                        byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
                        requestStream.Write(trailer, 0, trailer.Length);
                        requestStream.Close();
                    }
                }

                using (WebResponse response = request.GetResponse())
                {
                    using (Stream responseStream = response.GetResponseStream())
                        using (StreamReader reader = new StreamReader(responseStream))
                            content = reader.ReadToEnd();
                }

                objectRespond = JsonConvert.DeserializeObject <response>(content);


                return(objectRespond);
            }
            catch (WebException ex)
            {
                Console.WriteLine("API Process error : " + ex.Message);
                using (var reader = new System.IO.StreamReader(ex.Response.GetResponseStream()))
                {
                    Errresponse = reader.ReadToEnd();
                }
                //throw ex;
                objectRespond = JsonConvert.DeserializeObject <response>(Errresponse);
                //ajax_array.Message = JsonConvert.DeserializeObject(Errresponse).ToString();

                return(objectRespond);
            }
        }
コード例 #19
0
ファイル: WebAPIUtil.cs プロジェクト: denapurnama/BMVP_SOURCE
        public static List <T> Request <T>(Dictionary <string, string> data, string uri, string jsonConvert, string method) where T : new()
        {
            //get token
            //var postReq = "userName="******"ippcs_uname_ws");
            //postReq += "&password="******"ippcs_pwd_ws");
            //string getToken = CSTDSystemConfig.GetValue("ippcs_uri_token_ws") + postReq;

            //var TokenResponse = _download_serialized_json_data_token<TokenData>(getToken);

            var settings = new JsonSerializerSettings
            {
                NullValueHandling     = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };

            string  content    = string.Empty;
            dynamic ajax_array = new Object();

            //handle error
            string         Errresponse = string.Empty;
            CommonDBHelper Repo        = CommonDBHelper.Instance;
            string         url         = Repo.getAPIUrl();

            Console.WriteLine("API URL :" + url);

            ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            //set headers
            request.ContentType = "application/json";
            request.UserAgent   = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
            request.Method      = method;

            //set token
            //request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + TokenResponse.access_token);

            request.Proxy             = WebRequest.DefaultWebProxy;
            request.Credentials       = System.Net.CredentialCache.DefaultCredentials;;
            request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

            try
            {
                if (data != null && data.Count > 0)
                {
                    //write data to be sent
                    string dataJson = JsonConvert.SerializeObject(data);
                    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                    {
                        streamWriter.Write(dataJson);
                    }
                }

                if (jsonConvert != null)
                {
                    //write data to be sent
                    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                    {
                        streamWriter.Write(jsonConvert);
                    }
                }

                //retrieve response
                var response = request.GetResponse() as HttpWebResponse;

                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    content = reader.ReadToEnd();
                }
                response.Close();

                ajax_array = JsonConvert.DeserializeObject <List <T> >(content, settings);
                //ajax_array.Message = null;

                return(!string.IsNullOrEmpty(content) ? ajax_array : new List <T>());
            }
            catch (WebException ex)
            {
                using (var reader = new System.IO.StreamReader(ex.Response.GetResponseStream()))
                {
                    Errresponse = reader.ReadToEnd();
                }
                //throw ex;
                ajax_array = new List <T>();
                //ajax_array.Message = JsonConvert.DeserializeObject(Errresponse).ToString();

                return(!string.IsNullOrEmpty(Errresponse) ? ajax_array : new List <T>());
            }
        }
コード例 #20
0
        private static void HandlePersons(JMoviesEntities entities, Production production)
        {
            Movie movie = production as Movie;

            if (movie != null)
            {
                foreach (Credit credit in movie.Credits.ToArray())
                {
                    EntityEntry personEntry    = null;
                    Credit      existingCredit = null;

                    Person existingPerson = entities.Person.FirstOrDefault(e => e.IMDbID == credit.Person.IMDbID);
                    if (existingPerson != null)
                    {
                        credit.Person.ID = existingPerson.ID;
                        //personEntry = CommonDBHelper.MarkEntityAsUpdated(entities, credit.Person, new string[] { "PersonType" });
                    }
                    else
                    {
                        credit.Person.ID = CommonDBHelper.GetNewID <Person>(entities, e => e.ID);
                        personEntry      = entities.Person.Add(credit.Person);
                    }
                    entities.SaveChanges();

                    existingCredit = entities.Credit.FirstOrDefault(e => e.Person.ID == credit.Person.ID && e.ProductionID == production.ID);
                    CommonDBHelper.DetachAllEntries(entities);

                    ICollection <Character> characters = null;

                    credit.PersonID     = credit.Person.ID;
                    credit.Person       = null;
                    credit.ProductionID = production.ID;
                    EntityEntry entry = null;

                    if (credit is ActingCredit)
                    {
                        characters = ((ActingCredit)credit).Characters;
                        ((ActingCredit)credit).Characters = null;
                    }

                    if (existingCredit != null)
                    {
                        credit.ID = existingCredit.ID;
                        entry     = CommonDBHelper.MarkEntityAsUpdated(entities, credit, new string[] { "RoleType", "Characters", "Person" });
                    }
                    else
                    {
                        //credit.ID = CommonDBHelper.GetNewID<Credit>(entities, e => e.ID);
                        entry = entities.Credit.Add(credit);
                    }

                    entities.SaveChanges();

                    if (characters != null)
                    {
                        ((ActingCredit)credit).Characters = characters;
                    }
                    CommonDBHelper.DetachAllEntries(entities);
                }
            }
        }
コード例 #21
0
        public override void ExecuteBatch()
        {
            //Cek File In Temp
            CommonDBHelper Repo2 = CommonDBHelper.Instance;

            try
            {
                IDBContext db        = dbManager.GetContext();
                string     val1      = sysValue();
                String[]   listfile1 = Directory.GetFiles(val1);
                if (!listfile1.Any())
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                return;
            }

            string loc      = "Interface File From ADM Batch";
            string module   = "BMPV";
            string function = "IFilePriceFromADM";

            Common repoResult = null;
            Common getProc    = new Common();

            getProc.MSG_TXT     = "Start Process";
            getProc.LOCATION    = loc;
            getProc.PID         = 0;
            getProc.MSG_ID      = "ADMIPPCS1INF";
            getProc.MSG_TYPE    = "INF";
            getProc.MODULE_ID   = module;
            getProc.FUNCTION_ID = function;
            getProc.USER_ID     = "SYSTEM";
            getProc.PROCESS_STS = 0;
            Int64 PID = CommonDBHelper.Instance.CreateLog(getProc);

            CommonDBHelper Repo = CommonDBHelper.Instance;

            Console.WriteLine("Function is started");
            try
            {
                #region 1. Get File From Receive Folder
                Console.WriteLine("1. Get File From Receive Folder");

                getProc.MSG_TXT     = "Get File From Receive Folder";
                getProc.LOCATION    = loc;
                getProc.PID         = PID;
                getProc.MSG_ID      = "ADMIPPCS1INF";
                getProc.MSG_TYPE    = "INF";
                getProc.MODULE_ID   = module;
                getProc.FUNCTION_ID = function;
                getProc.PROCESS_STS = 0;
                getProc.USER_ID     = "SYSTEM";
                PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                int    totalSuccess = 0;
                string val          = sysValue();
                string fileSys      = GetFileName();
                string fileName;
                //string fileSys = "ADM_Interface";

                String[] listfile = Directory.GetFiles(val);
                fileName = listfile[0].Substring(8, 13);

                if (fileName != fileSys)
                {
                    getProc.MSG_TXT     = "Failed to get file in the directory";
                    getProc.LOCATION    = loc;
                    getProc.PID         = PID;
                    getProc.MSG_ID      = "ADMIPPCS1INF";
                    getProc.MSG_TYPE    = "ERR";
                    getProc.MODULE_ID   = module;
                    getProc.FUNCTION_ID = function;
                    getProc.PROCESS_STS = 0;
                    getProc.USER_ID     = "SYSTEM";
                    PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                    return;
                }

                #endregion


                #region 2. Read File and Load Into Staging
                try
                {
                    if (listfile != null)
                    {
                        Console.WriteLine("2. Read File and Load Into Staging");

                        getProc.MSG_TXT     = "Read File and Load Into Staging Table";
                        getProc.LOCATION    = loc;
                        getProc.PID         = PID;
                        getProc.MSG_ID      = "ADMIPPCS1INF";
                        getProc.MSG_TYPE    = "INF";
                        getProc.MODULE_ID   = module;
                        getProc.FUNCTION_ID = function;
                        getProc.PROCESS_STS = 0;
                        getProc.USER_ID     = "SYSTEM";
                        PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                        #region Create Data Table
                        DataTable table = new DataTable();

                        table.Columns.Add("WARP_BUYER_CD");
                        table.Columns.Add("SOURCE_DATA");
                        table.Columns.Add("DRAFT_DF");
                        table.Columns.Add("WARP_REF_NO");
                        table.Columns.Add("CPP_FLAG");
                        //table.Columns.Add("ID");
                        table.Columns.Add("CREATED_BY");
                        table.Columns.Add("CREATED_DT");


                        table.Columns.Add("MAT_NO");
                        table.Columns.Add("PROD_PURPOSE_CD");
                        table.Columns.Add("SOURCE_TYPE");
                        table.Columns.Add("SUPP_CD");
                        table.Columns.Add("PART_COLOR_SFX");
                        table.Columns.Add("PACKING_TYPE");
                        table.Columns.Add("PRICE_STATUS");
                        table.Columns.Add("PRICE_AMT");
                        table.Columns.Add("CURR_CD");
                        table.Columns.Add("VALID_DT_FR");
                        table.Columns.Add("VALID_DT_TO");

                        #endregion

                        int FILE_NO = 1;
                        foreach (var filename in listfile)
                        {
                            try
                            {
                                #region Read file's content and add into data table
                                using (StreamReader reader = new StreamReader(filename))
                                {
                                    string   RowData;
                                    string[] data;


                                    int SEQ = 1;
                                    while ((RowData = reader.ReadLine()) != null)
                                    {
                                        DataRow row = table.NewRow();

                                        data = RowData.Split(new string[] { "\t" }, StringSplitOptions.None);


                                        row["WARP_BUYER_CD"] = "";
                                        row["SOURCE_DATA"]   = "";
                                        row["DRAFT_DF"]      = "";
                                        row["WARP_REF_NO"]   = "";
                                        row["CPP_FLAG"]      = "N";
                                        //row["ID"] = ;
                                        row["CREATED_BY"] = "SYSTEM";
                                        row["CREATED_DT"] = DateTime.Now;

                                        row["MAT_NO"]          = data[0];
                                        row["PROD_PURPOSE_CD"] = data[1];
                                        row["SOURCE_TYPE"]     = data[2];
                                        row["SUPP_CD"]         = data[3];
                                        row["PART_COLOR_SFX"]  = data[4];
                                        row["PACKING_TYPE"]    = data[5];
                                        row["PRICE_STATUS"]    = data[6];
                                        row["PRICE_AMT"]       = data[7];
                                        row["CURR_CD"]         = data[8];
                                        row["VALID_DT_FR"]     = data[9].Contains("-") ? data[9] : data[9].Insert(4, "-").Insert(7, "-");
                                        row["VALID_DT_TO"]     = data[10].Contains("-") ? data[10] : data[10].Insert(4, "-").Insert(7, "-");

                                        table.Rows.Add(row);
                                        SEQ++;
                                    }
                                    totalSuccess = totalSuccess + 1;
                                }
                                #endregion
                            }
                            catch (Exception ex)
                            {
                                getProc.MSG_TXT     = "Error Import Data From File " + filename;
                                getProc.LOCATION    = loc;
                                getProc.PID         = PID;
                                getProc.MSG_ID      = "ADMIPPCS1INF";
                                getProc.MSG_TYPE    = "ERR";
                                getProc.MODULE_ID   = module;
                                getProc.FUNCTION_ID = function;
                                getProc.PROCESS_STS = 0;
                                getProc.USER_ID     = "SYSTEM";
                                PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                                MoveFileToArchieveFailed();

                                return;
                            }
                            FILE_NO++;
                        }


                        #region Save Temp Data into Database
                        if (totalSuccess > 0)
                        {
                            string del = deleteStaging();
                            if (del != "SUCCESS")
                            {
                                throw new Exception(del);
                            }
                            else
                            {
                                string msg = SaveTemp(table);
                                if (msg != "SUCCESS")
                                {
                                    throw new Exception(msg);
                                }
                            }
                        }
                        #endregion
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("error");
                    getProc.MSG_TXT     = "Error Import Data From File Price";
                    getProc.LOCATION    = loc;
                    getProc.PID         = PID;
                    getProc.MSG_ID      = "ADMIPPCS1INF";
                    getProc.MSG_TYPE    = "ERR";
                    getProc.MODULE_ID   = module;
                    getProc.FUNCTION_ID = function;
                    getProc.PROCESS_STS = 0;
                    getProc.USER_ID     = "SYSTEM";
                    PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                    MoveFileToArchieveFailed();

                    return;
                }
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine("error");
                getProc.MSG_TXT     = "Error Get file from receive folder";
                getProc.LOCATION    = loc;
                getProc.PID         = PID;
                getProc.MSG_ID      = "ADMIPPCS1INF";
                getProc.MSG_TYPE    = "ERR";
                getProc.MODULE_ID   = module;
                getProc.FUNCTION_ID = function;
                getProc.PROCESS_STS = 0;
                getProc.USER_ID     = "SYSTEM";
                PID = CommonDBHelper.Instance.CreateLogDetail(getProc);

                //MoveFileToArchieveFailed();

                return;
            }

            repoResult = Operation(PID);
            if (repoResult.ErrMesgs[0].Equals(Common.VALUE_SUCCESS))
            {
                MoveFileToArchieveSuccess();
            }
            else
            {
                MoveFileToArchieveFailed();
            }
            #region Move File After Operation

            #endregion
        }