27 Aralık 2017 Çarşamba

Delete a record using JQuery with AJAX functionality in ASP.NET MVC without using Html.AntiForgeryToken

I need a button posting to manage deleting process when it is clicked. After clicking the button a bootstrap module will appear and then it will ask us whether we continue or not.All will be done without using @Html.AntiForgeryValidation.Because we can not use it in this case.
First of all, I put a button on my HTML table's row to click on it.You can place it wherever you want.Also, I bind a javascript function which is ShowDeleteModal to call confirmation module.

<div class='btn-group'>

    <button type='button' class='btn btn-danger btn-sm' onclick="ShowDeleteModal('Log', 'Delete', '@Model.Id' )">

        <span class='glyphicon glyphicon-remove'></span> Delete

    </button>

</div>

The following image shows how the source HTML code looks in browser(F12)





And here is the ShowDeleteModal function,

function ShowDeleteModal(controller, action, id) {
            $("#deleteModal").modal("show");

            $("#controllerToDelete").val(controller);
            $("#actionToDelete").val(action);
            $("#deletedObject").val(id);
        }

When the user clicked the button a deleting confirmation message will display to ask will you continue or not?





 This message will be inside a bootstrap modal which has three inputs field those are hidden.Those inputs are stored in order of Controller Name(controllerToDelete), Action Name(actionToDelete), and GUID id(deletedObject) is relevant to which object will be deleted. You can see the following code.


    <div class="modal fade" id="deleteModal">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Deleting Operation</h4>
                </div>
                <div class="modal-body">
                    <p>The data temporarily will be deleted, Will you continue?</p>

                    @{
                        var deleteRequestVerificationToken = Guid.NewGuid();
                        TempData["DeleteRequestVerificationToken"] = deleteRequestVerificationToken;
                    }

                    <input hidden="hidden" id="DeleteRequestVerificationToken" value="@deleteRequestVerificationToken" />
                    <input hidden="hidden" id="deletedObject" value="" />
                    <input hidden="hidden" id="controllerToDelete" value="" />
                    <input hidden="hidden" id="actionToDelete" value="" />
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" onclick="ConfirmDelete()" data-dismiss="modal">Continue</button>
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                </div>
            </div>
        </div>
    </div>

We will post them inside AJAX data.But here I want to be sure that if a post request is coming from somewhere it must be coming from my page or my delete button on the table. It requires a validation system such as MVC's @Html.AntiForgeryToken. We can create our own key on the inside of modal of the deleting to validate the token in Action method after submitting. Place the following code on the page,

                @{
                        var deleteRequestVerificationToken = Guid.NewGuid();
                        TempData["DeleteRequestVerificationToken"] = deleteRequestVerificationToken;
                    }
When the page is loaded it sets up a value named 'deleteRequestVerificationToken ' with new GUID.
We store it inside TempData to reach it on the Controller's Action.

Posting process using JQuery with AJAX functionality inside 'ConfirmDelete' function,

        function ConfirmDelete() {

            var securityToken = $("#DeleteRequestVerificationToken").val();

            var controllerToDelete = $("#controllerToDelete").val();
            var actionToDelete = $("#actionToDelete").val();
            var deletedObject = $("#deletedObject").val();


         $.ajax({
                type: "POST",
                url: "/" + controllerToDelete + "/" + actionToDelete + "?id=" + deletedObject + "&securityToken=" + securityToken,
                success: function (response) {
                    if (response.success == true) {
                     window.location.href = response.urlToRedirect;
                    }
                }

            });

        }

In this sample, we assume that we have a Log table and are trying to delete a row from the table. 


If you prepare your Action's parameter like the following code you can find out whether we created this ticket or not. If the coming token(securityToken) is equal to the token inside TempData(DeleteRequestVerificationToken) we can keep going on deleting operation.

     // POST: Log/Delete/5
        [HttpPost]
       // [ValidateAntiForgeryToken]
        public ActionResult Delete(Guid? id,Guid? securityToken)
        {
            if (id == null || securityToken == null || TempData.Keys.Any(k => k == "DeleteRequestVerificationToken") || securityToken.ToString() != TempData["DeleteRequestVerificationToken"].ToString())
                return Json(new { success = false, message = "Bad Request" }, JsonRequestBehavior.AllowGet);

            var model = Get<Log>(id);

            if (model != null)
            {
                model.IsActive = false;
                //EditEntity<Log>(model);
                //return DeleteEntity<Log>(model, new Route() { Controller = "Log", Action = "Index" });

                return Json(new { success = true, urlToRedirect = string.Format("{0}", Url.Action("Index","Log")) } , JsonRequestBehavior.AllowGet);
            }
            else
            {
                ModelStateIsNotValid();

                return Json(new { success = false , urlToRedirect = string.Format("{0}", Url.Action("Index", "Log")) }, JsonRequestBehavior.AllowGet);
            }
        }



As you see above, the values that the two keys carry are matched so we can continue on our way.



26 Eylül 2017 Salı

28 Yaş Ortodonti Tedavisi

Evet böyle bir ihtiyaç için 10-15 yıl gecikmek. Olaya böyle bakmak lazım. 28 yaşındayım. Ama ortalama 'T' yıl yaşayacağımız hayatta ortalama 2 yıl sürdüğü söylenen bir tedaviye ne zaman başlamalı? 'T-2' yaşında mı? Yoksa şu an halledip 'T-28=Kalan yıllarım' yıl mutlu yaşamak mı? İkinci seçenecek daha mantıklı. Bu tedaviyi görüp ömür boyu rahat yaşamak, mutlu gülümsemek. Bir şeyler değişir mi? 10-20-30 yıl sonra keşke deneseydim demek yerine evet denedim ama istediğim gibi olmadı demek. Hangisini tercih ederdiniz?

Ortodontik tedavinin ne olduğunu bildiğinizi varsayarak tanımını yapmayacağım. İşte dişlerine tel takacaklar falan... Burada önemli olan beklentileriniz. Benim 1 latarel eksiği ve diğer lateral yerinde var olan süt dişinin çekimi ile 2.lateral eksikliği.Evet 28 yıl boyunca taşıdığım süt dişim vardı,bembeyazdı,kökü pek yoktu zaten artık kendiside yok ortodontiye başladıktan sonra çektirdik. Benim beklentilerim diş eksikliğimden dolayı dişlerimin sağlıklı bir kapanışa sahip olmaması dolayısıyla bunun çözümü,orta hattın kayık olması ve tabiki yanında özgüvenli bir gülümseme. Sonuç sağlık ve estetik, değer mi? Şöyle bir söz duymuştum S.Freud'e ait. Hayatta insanların 3 şeye para harcamaktan sakınmaması gerektiğini söyler : Eğitim,Sağlık ve Seyehat. Evet son zamanlar bilinç düzeyinin artmasıyla erken yaşlarda alınan bu tedavinin fiyatı eskiye oranla oldukça artmıştır. Ama tabi ki neye göre ? Sağlığın,mutluluğun fiyatı var mıdır? Öyle insanlar var ki kendi dişlerinin sırf diziliminden,çapraşıklığından vb durumlarından dolayı kendini rahat hissetmemekte. Bu ne kadar doğru?

Tamam, çok fazla takmamak lazım falan ama altın oran gibi şeyler var bu evrende.Neden kişi dişlerine baktığı halde sırf dişlerindeki diziliş bozukluğundan dolayı kendini rahatsız hissetsin? Elimizde ki herşeye şükürler olsun fakat hayatta daha güzele ulaşabilecekken neden vazgeçelim? Şöyle bir şey vardır toplumda,'hocam sana kısa saç yakışıyor'.Adamın saçı dökülüyordur. Eyvallah herkes elindekinin kıymetini bilsin tabikide. Fakat şu gerçek var keşke adamın saçı dökülmesede gene kısa kesim dolaşsa o arkadaş. Burada mecburiyet var. Kimse eğer şansı olsa kellik bana yakışıyor Jason Statham'a benziyorum diye düşünmek istemez,eğer mümkünse 3 numara dolaşan bir Jason Statham olarak dolaşmak varken. Gene saç ekimi vb yöntemler belli bir seviyeye gelmeye başladı ama tam tatmin edici değil. Ortodonti öyle bir şey mi? Hayır,artık eskiye nazaran çok hızlı sonuçlar alınabilen yani olabildiğince hızlı bir çözüm. Sonuçlar baskı ve zamanla ilgili olduğundan ve ek olarak işin içinde yıllardır belli bir basınç altında kapanışa alışmış kemikler olduğundan zaman alan bir çözüm. Ama başlangıçta dediğim gibi 'T-Şu an ki yaşınız' kadar mutlu yaşamak için değer veya en azından denedim olmadı demek için değer.

Belirtmek isterim ki daha önceden kimse elimden tutupta normalde ihtiyacım olan bu tedaviye beni götürmedi. Ama sorun değil hayatımda ilk defa şu an her anlamda hazır olduğum için şu an başladım. Daha erken yaşlarda yaptırabilenler çok şanslılar.Ben bunu denemeye karar verdim ve çok kısa süre içerisinde sonuçlarını gördüm diyebilirim.

27 Mayıs 2017 Cumartesi

CNN TURK Web Sitesi Reklam Kirliliği

Kaliteli haber sitesi bulmak oldukça zorlaşıyor. Tarafsız olanını bulmanın imkansıza yaklaştoığı bu günlerde gündemi takip etmek için göz atabileceğimiz haber sitelerinden biri cnnturk.Eski havasının olmadığı CNN ile bağlantısı olmasa akşamları politika,ekonomi vb tartışmalara Harun Yahya'yı bile çıkarabilecek kadar bozuldukları aşikar.

Rahatsız olduğum konu ise 2017 dünyasında bir haber yayımlarken bu derece kazanç elde etme hırsı insanı tiksindirmiyor değil.Arkadaş anladık haber yapıyorsunuz, anladık televizyon üzerinden aldığınız reklamlar kadar belkide burada gelir elde edemiyorsunuz, ama bu nasıl bir aç gözlülüktür?  Haberin kendisi 30 küsür saniye,sayfa açılırken çıkan popup reklam+30 küsür saniye herhangi bir marka reklamı+30 saniyelik haberin belli saniyelerinde çıkan 3-4 saniyelik reklam.Abi afedersinizde illegal bir site misiniz?(genelde öyle olurlar ya 20 tane reklam tıklattırmaya çalışırlar vb) Hint fakiri misiniz? Bunu anlayamıyorum. Hangi akıla hizmete ederekten bir kullanıcının bu şekilde bu web sitesini kullanabileceğini düşünebilirler.Web üzerinde bir sürü alternatif varken neden ben sizin haber hizmeti vermek adına her türlü kirliliğe dönüşebilen sayfalarınızda gezineyim. Bundan sonra gerekirse yabancı kaynaklardan haberleri takip ederim veya geriye kalan birkaç tarafsız gibi duran gazete sayfalarından faydalanırım!



Sayfayı açıyorsun popup reklam karşılıyor




Video 30 küsür saniye ama çıkan reklamda sonuna kadar izlemek zorunda olduğunuz 30 saniyelik bir reklam




Videonun üzerinde dikkat ederseniz sarı çizgiler görünüyor.O kısımlarda daha reklamlar mevcut.




Sarı çubuklardan birinde 3-4 saniyelik bir reklam daha,bu aşamaya gelince şükürler olsun CNNTURK gibi bir web sitesi var ki bana haber sunuyor daha iyisini bulamazdım bu dünyada diye düşündürüyor!!!! :/


Link : http://www.cnnturk.com/video/turkiye/canakkaledeki-kaza-ani-kameralara-boyle-yansidi
Link bu fakat aşırı reklam kirliliğine maruz kalmamak için girmenizi tavisye etmiyorum

Burulaş Tekelciliği

Bursa'da yaşayanlar bilir, ülke üzerinde ki hemen hemen en pahalı toplu ulaşıma sahip insanlar olduklarını. Bu kadar pahalı toplu ulaşım hizmeti gerçektende mevcut hükümetin hayaldi gerçek oldularıyla bu noktalara gelmiştir. Zamanında halka hizmet amacıyla vergilerle yapılan bu sistemin geldiği son nokta tam bir rezillik.İstif hali yolculuklar,pahalılık güvenlik önlemlerinin kişisel bir çocuk bilgisayarından daha düşük seviyede olması,kaptanla iletişimsizlik,sürekli kar elde etmelerine rağmen yapılan onlarca ulaşım zammı....Burulaş şirketini durdurabilcek bir siyasi güç mevcut değil gibi duruyor.İnsanların tepkilerini hiçe sayan bir yönetim anlayışı ile peşkeş çekilmiş raylarda mecburi bu hizmetten yararlanamak zorunda kalan çalışan,öğrenci gibi vatandaşların mağduriyetleri bitmek bilmiyor.

Burada,şehirde bir tane raylı sistemi olduğu için(ismi BursaRay) doğal olarak mevcut şirketin tekelin dibi olduğunu belirtmeye gerek yok. Bilindiği üzere bir sektörde tekelcilik her zaman vatandaşın aleyhinedir. Trajikomik olan bu şirketi bu hale getiren devlet dediğimiz şey son zamanlarda devlet olarak tekel kalamamış(devlet dediğin birdir) kendisine 'Paralel Yapı' denilen,ilgili hükümet tarafından desteklenmiş zamanında ne isteniliyorsa verilmiş bir kardeş edinmiştir. İş böyleyken BursaRay denilen şirket halen rakipsiz olduğu raylarda para basmaya devam etmektedir. En sonunda bilet satışı ve kart dolumu ile ilgilenen durak başı en az iki personeli ortalıktan yok etti. Akıbetleri hakkında bilgim olmadığından işlerine son verildi demek istemiyorum.Onların yerine her durağa kartını yerleştirip para yüklemesi yapabildiğin bir otomat yerleştirdiler. Bu makineler iyi güzelde teknolojide sistem denilen şey bunlara geçmiyor mu? Nedir sistem? Bu ülkede ne zamandan beridir alınan bir hizmet karşılığı veya ürün için ticari faaliyette bulunan firma vatandaşa sadece mali değeri olmayan bir kapıt parçası verir oldu? Sizin tanıdıklarınız,komşu bakkal amcanız,süper marketler,lokantalar aldığınız hizmet karşılığında sürekli fiş kesmeyen firmalar mı? Bu otomat sistemi yaklaşık olarak bir senedir aktif bulunmakla beraber burulaş denen firmaya günde -artık sayılarını Allah'ın ve bu firmanın bilebileceği kart cırtlatmaların- ne kadar kazanç getirdiği gizlidir. Devlet apaçık koskoca büyükşehiri ikiye bölmüş,ana damarı olmuş bir raylı sistemde mali değeri olmayan,sıçındırık bir bilgi fişi harici vatandaşa bir fatura verilmemesiyle ilgilenmemektedir. Peki size soruyorum siz verginizi verirken nasıl oluyor ? Her şey ahirette mi sorgulanacak?

Devirdaim Arızası ve Sonuçları

Bir gün doblo 1.9 jtd aracımla arkadaşım ile seyir halindeyken ilk kez hararet göstergesinde H(Hot)'a ibrenin yaklaştığını farkettim. Hemen yol kenarına durdum ve ön kaputu açtım. Karşılaştığım manzara arabanın ön kısmında bulunan fan devreye girmiş ve suyunun bitmek üzere olduğuydu. O durumda iken arkadaşımla yapmamamız gereken bir şey yaptık. Su deposundaki suyun azaldığını görünce kapağı açıp su ilave etmek istedik. Allah'tan çok fazla su olmadığından başımıza iş gelmedi. Öyle ki motor çalıştıktan sonra belli bir hareket sonrası o kapağı açmak çok tehlikeli sonuçlar doğurabilir. Oluşan basınç sonucu yüksek sıcaklıkta ki suyun vücüdumuza sıçraması manevi anlamda sıkıntı oluşturabilir. Zaten kapağı bir kerede açamadığımız gibi var olan az miktarda ki suyun taşmasıyla sonlanmıştır.

Arkasından hararet durunca biraz daha hareket ettik fakat gene fanın devreye girdiğini farkettik. Bu sefer depoda su azalımı olmamıştı. Konuyla ilgili bir tanıdığımı çağırdım. Türk insanında maalesef şöyle kötü bir özellik var. Aşırı yardımseveriz. Buda tam olarak hakim olamadığımız konularda ben bilmiyorum,bunu bir bilene gösterelim diyemememizdir. Üstüne hararet ve fan çalışması devam ederken seyredilen yol sonucu araç aşağıdaki beyin arızasını vermiştir.


 Neden beyin arızası diyorum, bildiğim kadarıyla göstergede ayrıca bir icon bulamamış her parça için(ki bunlar 999 a varan hatalar) işin ehilleri tarafından 'kardeş bu beyin hasarı,bu çok fena,valla çok korkmuşem' denildiği için. Adamlar hem arızayı tespit edemezler (bu başka hikayem) hemde bir ipucu yakaladıklarında bütün ilişkili parçaların alayını değiştirerek kendisi için mutlu sonu hazırlarlar. Sonuç olarak araba bir kere yol kenarına daha çekip su deposu yok termostattan mı diye kontrol edilirken kapatıp açama işleminde bir daha marş yememiştir. Ondan sonrası çekici ile tanıdığın tanıdığı ustaların kucağına oturmak.Ek olarak motoru açmadan göremeyiz abi ve motor aç-kapa 500 tl bu ülkede,iki üç güne araç teslim en uzun süreç.Evet mühendisler utanın o çalıştığınız paralara.(Asıl sistem,işveren ve devlet yetkilileri utansın)

Arıza devirdaim in kırılması sonucu trigger kayışının sıyrılması falan filan. Soru 'bunu öngörebilme olasılığım var mıydı?'. Cevap 'Bu şartlarda yok.Zamanında trigger kayışı değişirken set halinde değişmemesi gibi görünüyor sorun.(Yani daha önceki değişimde atıyorum 100 200 tl daha ucuza olsun bu devirdaim iyi görünüyor mantığıyla 2017 de göte giren 2675 tl)'

Arabada değişen bütün parçaları istedim.Ne yapacağımı soruyorlar. Siz ne yapacaksınız dedim.Atacağız,o zaman bende atarım.Benden öneri bir şeyin parasını ödüyorsanız aracınızdan çöp bile çıksa isteyin.Böylelikle hangi parçanın değiştiğini gözüünzle görüp bilgi sahibi olursunuz.Gerçekten birşeylerin değişip değişmediğini görürsünüz.Benim lsitede kapakçı kısmında yapılan işlemlerle ilgili bir malzeme alamadım. İş nedeniyle ilgilenemediğim için aşağıda vereceğim listede ki geçirmeleri anca iş işten geçtikten sonra anlayabildim.(Parça bazında) Fiyata kızdırma bujileri,tekerleğin tekinde kırılan yarım bijon problemi yağ-su-hava filtre değişimleride ekli haldedir.

Komik olan şu daha değiştirdikleri parçaların isimlerini bilmeyen adamlara(listeden anlarsınız, ben daha iyi bildiğimi iddaa etmiyorum,Sadece bu işten ekmek yiyiyorsa bir adam biraz ne yaptığını bilmeli diye düşünüyorum. İnternet elimizin altında.) aracımızı teslim ediyoruz. Adamlar sizinle salak salak konuşmalar yapıyor. İş sona gelince fiyatı görüyorsunuz. Bundan sonra gerekirse servis.Olay güvenle ilgili. Arabanız yolda kaldıysa ve tamirci bilmiyorsanuz götürecek gereçkten önerim evinizin önüne çektirmek. Ondan sonra sakin kafayla sormak,soruşturmak,gerekirse yerinde göstermek. Saçma gelebilir ama en azından abi yolda kaldık döşe döşeyebilirsen deyip adamın mekanına uğradığınızda adamlar ağına av düşmüş örümcekten daha vahşileşebiliyor. Bilgilendirme sıfır,devlete vergi zaten sıfır kazançlar yüzde yüzde müşteriye döşenmiş kar. Üstüne seni suçlamaya kalkarlar yok arabanın şusu böyleydi sen nasıl böyle dolaşıyorsun. Konuyla alakası yoktur genelde.


Bu tamirat olaylarından sonra araba p0232 hatası verdi.Gene o meşhur beyin hatası çıkıyor. Bir ustada yük basıncı arızası birinde turbo ile ilgili hatalar gösterdir.Bu arakdaşların yönlendirdiği pompacı ustaya gittim.Adam bilmiyor hatayı açıp denemek lazım belki şundadır belki bunda.Dedim arkadaş yok öyle şunda bunda oyunu.Bana net bieşy söyle söyleyemiyor musun o zaman bundan sonra servis arkadaş.Anasını sattığımının yerinde adama diyorum bana ortalama bir maliyet çıkar.Adam diyor bleki olur 400 500 belki olur 4 milyar ne bielyim diyor pis pis sırıtıyor.Senin canın burnunda.Dedim sonra uğrarım. Çok bekler.Artık bu servisin nasibi.DevirDAYIMlara gitmek yok artık.!!!!


9 Mart 2017 Perşembe

Lawn Mower(Bosch ARM 32-1200W)




Recently, this is the first time I had a chance to use a lawn mover.Actually, it belongs to me after now because I bought a Boch ARM 32 for the garden of my family's summer house! The machine has revolving blades at its bottom to cut a lawn. These blades are so dangerous for anything. Especially on your old carpet. Ok, this was my fault and at least everybody is good. Nobody didn't get injured. I tried to work the machine but it didn't work.I miss it on our old carpet and it has suddenly worked. A big hole on the carpet! That is all, nothing to worry. But I can tell you these machines are wicked and do not let children use them.You have to see our carpet's last status.






Anyway, these machines are developed to cut lawn by utilizing whose sharpen blades to cut grasses. This is the process to adjust all grasses to an even height. It is so fun to drive and push it. It helps you to relax. I recommend this machine called Bosch ARM 32(1200W) to one who thinks to buy a lawn mower. It has 1200W engine power and capacity of cutting grasses is 31 liters.6,8 kg weight, cutting height 20 - 60 mm, cutting system with the blade. Here is my first driving a lawn mower video:


23 Şubat 2017 Perşembe

Using CharIndex To Find an Character Inside the Substring of an Expression

In this topic, we are going to discuss how to use charindex and substring  Sql functions. First of all analyze together what we need to do. Let's assume that we got a problem which is that there is a column inside our Sql table. This column contains data with nvarchar type and also is about NBA basketball teams. Data inside the column comes like that 'Cleveland-Team', 'Lakers', 'Denver', 'Chicago-Team',  etc.  What is the point here we are stuck in? We have to pick the only related part of data to a real team's name. It means to pick team name by using separated substring. Separated substring must be taken before hyphen(-) character. ('Cleveland-Team' => Cleveland)

We have 3 things to do now.
- Determine whether the word contains (-) char or not. If the hyphen doesn't exist inside the word display it or if it has you can continue with the second job.
- Determine the index of the hyphen(-) char inside the string(word).(We will use CHARINDEX of Sql Methods)
-Separate the left part of the string from the first character to the index of the hyphen(-). (We will use CHARINDEX of Sql Methods)

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ])  

It can be used to search an expression inside the another one. If the expression is found, CharIndex method is going to return its starting position. It requires an expression to find and an expression to search like below.

Sample : select CHARINDEX('-','Cleveland-Team');

Result :  10




SUBSTRING ( expression ,start , length )

It returns a part of expression from a start index to sum of start+lenght. We have an expression now like Cleveland-Team, and also have the length of the above sample. We are giving 1 as start parameter.

Sample : select SUBSTRING('Cleveland-Team',1,CHARINDEX('-','Cleveland-Team'));

Result : Cleveland-

Notice that there is the hyphen char at the end of the expression. We want to get rid of it by decreasing the length parameter.(length -1 )

Finally, I want to show you how to filter if a word contains an expression, and how to get to its pieces.



declare @word as nvarchar(100)='Cleveland-Team';

select IIF(CHARINDEX('-',@word)=0,
    @word,SUBSTRING(@word,1,CHARINDEX('-',@word)-1))

Hope this article helps you, see you later.