1. Ana Sayfa
  2. Üretici Teknolojileri
  3. Sharepoint Üzerinden Cisco Database’e Bağlanıp Gelen ve Giden Aramaları Göstermek

Sharepoint Üzerinden Cisco Database’e Bağlanıp Gelen ve Giden Aramaları Göstermek

Bu makalemde sizlere 2010 üzerinde Custom bir WebPart kullanarak aramalarının Visual Studio ile database den çekip üzerinde gösterilmesini anlatacağım.

Visual studioyu açtıktan sonra visual webpart projesi oluşturuyoruz. Daha sonra add > new item > visual web part ı seçip “ciscocagri” ismini verdikten sonra add butonuna basıyoruz.


Resim-1

Html tarafında aşağıdaki css kodlarını ekleyeceğiz. Bu kodlar web partın görselliği için Aşağıdaki resimde göreceğiniz gibi Mouse “Gelen Aramalar”ın üzerine geldiğinde O kısım aktif ve renkli olacaktır. Giden Aramalar kısmına geldiğinizde otomatik olarak “Giden Aramlar” gözükecek ve o bilgileri gösterecektir sizlere.


Resim-2


Resim-3

Tab yapısını çalıştırmak için Jquery kütüphanesine ekliyoruz;

<script type=”text/javascript” src=”/SiteAssets/jquery-1.2.6.min.js”></script>


<style
type=”text/css”>


#page{width:315px;margin:auto;}


#tabs{float:left;background:#fff;padding:5px;}


#tab_basliklar{float:left;width:315px;}


#tab_basliklar
span{float:left;padding:5px; margin:0
0px
0
0;cursor:pointer;font:12px
verdana;color:#fff; background-color:#ff0000}


#tab_menuler{display:none;}


#tab_goster{float:left;width:295px;padding:10px;background:#eee;font:10px
verdana;color:#999;}


#tab_goster
a{float:left;padding:2px
5px;margin:0
15px
0
0;color:#800;text-decoration:none;border-bottom:solid
1px
#ccc;}


#tab_goster
a:hover{background:#800;color:#fff;}


#tab_goster
ul{

    padding:5px; background-color:#fff; margin:0px; list-style:none; height:84px;

}


#tab_goster
ul
li{margin-bottom:2px;}


</style>

Tab yapısını aktif etmek için aşağıdaki kodları ekliyoruz (Sağ ve Sol tarafı seçme)

<script
type=”text/javascript”>

$(function () {

tab_menu();

});


var aktif_tab = 0;


function tab_menu() {

tab_degistir(0);

$(“#tab_basliklar > span”).mouseover(function () {


var index = $(“#tab_basliklar > span”).index(this);


if (aktif_tab != index) {

tab_degistir(index);

aktif_tab = index;

}

});

}


function tab_degistir(index) {

$(“#tab_basliklar > span”).stop().animate({ opacity: “0.3” }, 100);

$(“#tab_basliklar > span:eq(“ + index + “)”).stop().animate({ opacity: “1” }, 500);

$(“#tab_goster”).html($(“#tab_menuler > div:eq(“ + index + “)”).html());

$(“#tab_goster a”).css(“opacity”, “0.4”).animate({ opacity: “1” }, 500);

 

}


</script>

Sayfamıza aşağıdaki html kodlarını ekliyoruz. İki tane literal kontrolümüz var değerleri bu kontrollerin üzerine yazacağız. Bu giden ve gelen aramalar için)

<div
id=”page”>


<div
id=”tabs”>


<div
id=”tab_basliklar”>


<span>


<div
style=”width: 150px;”>

Gelen Aramalar</div>


</span><span>


<div
style=”width: 145px;”>

Giden Aramalar</div>


</span>


</div>


<div
id=”tab_menuler”>


<div>


<asp:Literal
ID=”ui_lt_gelen_aramalar” runat=”server”></asp:Literal>


</div>


<div>


<asp:Literal
ID=”ui_lt_gidenaramalar” runat=”server”></asp:Literal>


</div>


</div>


<div
id=”tab_goster”>


</div>


</div>


</div>

Cs tarafına geçiyoruz ve aşağıdaki metodu ekliyoruz. Bu metot sharepoint üzerinden ip telefon bilgisini döndürecek. Not AD içerisinden senkronizasyon ile kullanıcı çekiyorsanız AD içerisinde ip phone bilgisi olması gerek. Mevcut senaryoda Sharepoint kendi içerisindeki IPPhone Attribute’üne bakmaktadır.

public
static
string PropValueGetir(string deger)

{


string result = string.Empty;


try

{


using (SPSite site = new
SPSite(“http://omercelikportal”))

{


ServerContext context = ServerContext.GetContext(site);


UserProfileManager userProfileManager = new
UserProfileManager(context);


UserProfile currentUserUserProfile = userProfileManager.GetUserProfile(System.Web.HttpContext.Current.User.Identity.Name);

result = (string)currentUserUserProfile[“” + deger + “”].Value;

}

}


catch (Exception)

{

}


return result;

}

Sayfanın page load kısımlarına aşağıdaki kodu ekliyoruz.

protected
void Page_Load(object sender, EventArgs e)

{


if (!IsPostBack)

{

string gelenarama = string.Empty;


string gidenarama = string.Empty;


string dahili = AnasayfaC.PropValueGetir(“IpPhone”);

if (!string.IsNullOrEmpty(dahili))

{

Panel1.Visible = true;

gelenarama =gelenaramalar(dahili);

gidenarama =gidenaramalar(dahili);

 


if (!string.IsNullOrEmpty(gelenarama))

{

ui_lt_gelen_aramalar.Text = gelenarama;

}


if (!string.IsNullOrEmpty(gidenarama))

{

ui_lt_gidenaramalar.Text = gidenarama;

}

}

 

}

Gelenaramalar ve gidenaramalar isminde iki tane metot oluşturuyoruz. Dahili numarasını bu metotlara gönderiyoruz. Aşağıda Database ve username kısımlarına kendisine ait bilgileri doldurmanız gerekmektedir.

public
static
string gelenaramalar(string dahili)

{


string result = string.Empty;


string sure = string.Empty;


string areacode = string.Empty;


string telno = string.Empty;


string dakika = string.Empty;


TimeSpan t;


try

{


using (SqlConnection cn = new
SqlConnection(@”Server=.; Database= ciscodb; user=ciscodbuser; pwd= ciscodb;”))

{

 

cn.Open();


string partyID = string.Empty;


string short_name = string.Empty;


SqlCommand cmd1 = new
SqlCommand(“SELECT top 5 STARTDATETIME, DURATION, AREACODE,TELNO from Incomingcalls where EXT=@dahili and DURATION>0 ORDER BY STARTDATETIME DESC”, cn);

cmd1.CommandType = CommandType.Text;

cmd1.Parameters.AddWithValue(“@dahili”, dahili);


SqlDataReader dr = cmd1.ExecuteReader();


if (dr.HasRows)

{

result = “<ul>”;


while (dr.Read())

{

sure = dr[“DURATION”].ToString();

result += “<li>”;

areacode = dr[“AREACODE”].ToString();

telno = dr[“TELNO”].ToString();

dakika = dr[“STARTDATETIME”].ToString();

t = TimeSpan.FromSeconds(Convert.ToDouble(sure));


if (areacode == “0”)

{

areacode = “212”;

}

result += “<i>” + dakika + “</i>” + ” – <u> “ + t.ToString() + “</u> – “ + areacode + ” “ + telno + “</span>”;

result += “</li>”;

 

}

result += “<li>” + BuAytoplamGelen(dahili) + “</li>”;

result += “</ul>”;

}

}

}


catch (Exception ex)

{

 

}


return result;

 

}


public
static
string gidenaramalar(string dahili)

{


string result = string.Empty;


string sure = string.Empty;


string areacode = string.Empty;


string telno = string.Empty;


string dakika = string.Empty;


TimeSpan t;


try

{

using (SqlConnection cn = new
SqlConnection(@”Server=.; Database= ciscodb; user=ciscodbuser; pwd= ciscodb;”)) {

cn.Open();


string partyID = string.Empty;


string short_name = string.Empty;


SqlCommand cmd1 = new
SqlCommand(“SELECT top 5 STARTDATETIME, DURATION, AREACODE,TELNO from Outgoingcalls where EXT=@dahili and DURATION>0 ORDER BY STARTDATETIME DESC”, cn);

cmd1.CommandType = CommandType.Text;

cmd1.Parameters.AddWithValue(“@dahili”, dahili);


SqlDataReader dr = cmd1.ExecuteReader();


if (dr.HasRows)

{

result = “<ul>”;


while (dr.Read())

{

sure = dr[“DURATION”].ToString();

result += “<li>”;

areacode = dr[“AREACODE”].ToString();

telno = dr[“TELNO”].ToString();

dakika = dr[“STARTDATETIME”].ToString();

t = TimeSpan.FromSeconds(Convert.ToDouble(sure));


if (areacode == “0”)

{

areacode = “212”;

}

result += “<i>” + dakika + “</i>” + ” – <u> “ + t.ToString() + “</u> – “ + areacode + ” “ + telno + “</span>”;

result += “</li>”;

 

}

result += “<li>” + BuAytoplamGiden(dahili) + “</li>”;

result += “</ul>”;

}

}

}


catch (Exception)

{

 

}


return result;

 

}

Projemizin kod kısmı bu kadar. Daha sonra projemizi deploy ediyoruz. Deploy işlemi tamamlandığında Sharepoint tarafına geçip;

Sayfa > Sayfayı Düzenle Menüsünden “Web Bölümü Ekle” kısmını seçiyoruz.


Resim-4


Resim-5

Açılan ekranda “Custom” seçeneğinden oluşturduğunuz Web Part’ı seçin. (ciscocagri). Aşağıdaki resimde “AnasayfaTelefonDetay” kısmı sizde CiscoCagri olacaktır.


Resim-6

Seçtiğiniz Webpart istediğiniz kısma gelecektir.


Resim-7

Düzenlemeyi Durdur Butonuna basıp Sayfayı yenilediğinizde verileriniz gelecektir.


Resim-8


Resim-9

Bu konuyla ilgili sorularınızı Http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.technet.com

www.mshowto.org

www.omercelik.com.tr 

Yorum Yap

Yazar Hakkında

1982 yılında İstanbul'da doğan Fatih Teke, Atatürk Üniversitesi Endüstriyel Elektronik Bölümünü bitirdikten sonra şirketlerin bilgi işlem departmanlarında çalışmaya başladı. Commodore 64 ile başlayan bilgisayar macerası, 2003 yılında profesyonel olarak devam etmiştir. Şu anda meslek hayatına özel bir firmada danışman olarak devam etmektedir. Microsoft yetkili eğitmeni MCT (Microsoft Certified Trainer) sertifikasına sahip olan Fatih Teke, Symantec Official Web sitesinde yaptığı çözümler, paylaştığı videolar ve makaleler ile Symantec Trusted Advisor ünvanına layık görülmüştür. Türkiye’deki ilk ve tek Trusted Advisor olan Fatih Teke boş zamanlarında tenis, basketbol ve satranç müsabakalarına katılmaktadır. Symantec EndPoint Protection, Exchange, TMG, Lync, SCCM, SCOM ve Server İşletim Sistemleri ilgi alanları dahilindedir.

Yorum Yap