예제 #1
0
        public override string GetShortUrl()
        {
            var urlCheck = GetDataFromCache();

            if (urlCheck != null)
            {
                return(urlCheck.KeyCode);
            }

            var newObj = new TopLevelModel()
            {
                Url = OriginalUrl, DateCreated = DateTime.UtcNow
            };

            newObj = _repo.Add(newObj);

            if (newObj != null)
            {
                var keyCode = KeyEncode((int)newObj.Id);

                SetCacheEntry(StrategyConstants.SingleLayerCache,
                              AddDataToCache(new SingleLayerCacheModel {
                    Id = newObj.Id, KeyCode = keyCode, Url = Url
                }));

                return(keyCode);
            }

            return(ErrorMessagesConstants.FailToGenerate);
        }
예제 #2
0
        public TopLevelModel Add(TopLevelModel objNew)
        {
            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                String query = "INSERT INTO dbo.TopLevel (url,datecreated) " +
                               "VALUES (@url,@datecreated); SELECT SCOPE_IDENTITY()";

                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    command.Parameters.AddWithValue("@url", objNew.Url);
                    command.Parameters.AddWithValue("@datecreated", objNew.DateCreated);

                    connection.Open();
                    objNew.SetId(command.ExecuteScalar());


                    // Check Error
                    if (objNew.Id < 0)
                    {
                        return(null);
                    }
                }
            }

            return(objNew);
        }