Factory
A factory is a simple function which allows you to add some logic before creating the object. It returns the created object.
web api code :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApplication38.Models;
namespace WebApplication38.Controllers
{
public class ValuesController : ApiController
{
[HttpGet]
public List<EMP> Gets()
{
using (Database1Entities obj = new Database1Entities())
{
return obj.EMPs.ToList();
}
}
[HttpGet]
public EMP Get(int EID)
{
using (Database1Entities obj = new Database1Entities())
{
return obj.EMPs.SingleOrDefault(m => m.EID == EID);
}
}
[HttpPost]
public string Post(EMP emp)
{
using (Database1Entities obj = new Database1Entities())
{
obj.EMPs.Add(emp);
obj.SaveChanges();
return "Data Saved.";
}
}
[HttpPut]
public string Put(EMP emp)
{
using (Database1Entities obj = new Database1Entities())
{
EMP emp1 = obj.EMPs.SingleOrDefault(m => m.EID == emp.EID);
emp1.NAME = emp.NAME;
obj.SaveChanges();
return "Data Updated.";
}
}
[HttpDelete]
public string Mdelete([FromUri]List<int> lst)
{
using (Database1Entities obj = new Database1Entities())
{
obj.EMPs.RemoveRange(obj.EMPs.Where(m => lst.Contains(m.EID)));
obj.SaveChanges();
return "Data Deleted.";
}
}
[HttpGet]
public string Delete(int EID,int i)
{
using (Database1Entities obj = new Database1Entities())
{
EMP emp1 = obj.EMPs.SingleOrDefault(m => m.EID == EID);
obj.EMPs.Remove(emp1);
obj.SaveChanges();
return "Data Deleted.";
}
}
}
}
View Code :
@{
ViewBag.Title = "Index";
}
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/Service.js"></script>
<h2>Jay Jagannath...</h2>
<div class="container" ng-app="app" ng-controller="ctr">
<form class="form-horizontal">
<div class="form-group">
<label class="col-lg-4 control-label">EID</label>
<div class="col-lg-4">
<input type="text" class="form-control" ng-model="EMP.EID" id="tb" />
</div>
</div>
<div class="form-group">
<label class="col-lg-4 control-label">NAME</label>
<div class="col-lg-4">
<input type="text" class="form-control" ng-model="EMP.NAME" />
</div>
</div>
<div class="form-group">
<label class="col-lg-4 control-label"></label>
<div class="col-lg-4">
<input type="button" value="Delete All" style="width:80px" class="btn btn-primary" ng-click="da()" />
<input type="button" value="Save" style="width:80px" class="btn btn-primary" ng-click="save()" />
<input type="button" value="Update" style="width:80px" class="btn btn-primary" ng-click="update()" />
<input type="button" value="Reset" style="width:80px" class="btn btn-primary" ng-click="reset()" />
</div>
</div>
<div class="row">
<table class="table table-bordered table-condensed table-hover table-responsive table-striped">
<thead class="bg-primary">
<tr>
<th><input type="checkbox" id="hcb" /></th>
<th>EID</th>
<th>NAME</th>
<th>UPDATE</th>
<th>DELETE</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="c in list" class="row1">
<td><input type="checkbox" class="cb" value="{{c.EID}}" /></td>
<td>{{c.EID}}</td>
<td>{{c.NAME}}</td>
<td><a ng-click="edit(c)">Edit</a></td>
<td><a ng-click="del(c)">Delete</a></td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
Angular Js Code :(service.js)
/// <reference path="jquery-1.9.1.js" />
/// <reference path="angular.js" />
angular.module("app", [])
.controller("ctr", function ($scope, EmpService) {
function clr() {
$scope.EMP = new empvm();
$('#tb').focus();
} clr();
function fill()
{
EmpService.GetAll().then(function (d) {
$scope.list = d.data;
});
} fill();
$scope.reset = function ()
{
clr();
}
$scope.da = function ()
{
if (confirm('Do you want to delete it ?'))
{
var n = '';
angular.forEach($(".cb:checked"), function (i, j) {
n = n + 'lst=' + $(i).val() + '&';
});
n = n.substring(0, n.lastIndexOf('&'));
EmpService.Mdelete(n).then(function (d) {
alert(d.data);
fill();
});
}
}
$scope.save = function ()
{
EmpService.Save($scope.EMP).then(function (d) {
alert(d.data);
clr();
fill();
});
}
$scope.edit = function (s)
{
EmpService.Get(s.EID).then(function (d) {
$scope.EMP = d.data;
});
}
$scope.update = function () {
EmpService.Update($scope.EMP).then(function (d) {
alert(d.data);
clr();
fill();
});
}
$scope.del = function (s)
{
if (confirm('Do you want to delete it ?'))
{
EmpService.Delete(s.EID).then(function (d) {
alert(d.data);
fill();
});
}
}
$('#hcb').click(function () {
if ($('#hcb').is(":checked"))
$('.cb').prop("checked", true);
else
$('.cb').prop("checked", false);
});
$('body').on("click", '.cb', function () {
if ($('.cb').length == $('.cb:checked').length)
$('#hcb').prop("checked", true);
else
$('#hcb').prop("checked", false);
});
})
.factory("EmpService", function ($http) {
var fac = {};
fac.GetAll = function () {
return $http.get('http://localhost:63386/api/Values');
}
fac.Get = function (EID) {
return $http.get('http://localhost:63386/api/Values/Get?EID=' + EID);
}
fac.Save = function (EMP) {
return $http.post('http://localhost:63386/api/Values/Post', EMP);
}
fac.Update = function (EMP) {
return $http.put('http://localhost:63386/api/Values/Put', EMP);
}
fac.Delete = function (EID) {
return $http.get('http://localhost:63386/api/Values/Delete?EID=' + EID+"&i="+1);
}
fac.Mdelete = function (lst) {
return $http.delete('http://localhost:63386/api/Values/Mdelete?' + lst);
}
return fac;
}
);
function empvm()
{
return {
EID: null,
NAME:null
}
}
When to use
It is just a collection of functions like a class. Hence, it can be instantiated in different controllers when you are using it with constructor function.
No comments:
Post a Comment