public ActionResult DeleteConfirmed(Guid id)
        {
            RecievedCall recievedCall = db.RecievedCalls.Find(id);

            db.RecievedCalls.Remove(recievedCall);
            db.SaveChanges();
            ViewBag.ModelIdBeingOperated = recievedCall.Id;
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(RecievedCallViewModel recievedCall)
        {
            var caller = db.Callers.Where(c => c.Name.Equals(recievedCall.CallerName) && c.Tel.Equals(recievedCall.CallerTel)).FirstOrDefault();

            if (Int32.Parse(recievedCall.Hour) < 10)
            {
                recievedCall.Hour = 0 + recievedCall.Hour;
            }

            if (Int32.Parse(recievedCall.Minute) < 10)
            {
                recievedCall.Minute = 0 + recievedCall.Minute;
            }

            RecievedCall newRecievedCall = new RecievedCall
            {
                Id = Guid.NewGuid(),
                //Date = new PersianDateTime(recievedCall.Year, +"/" + recievedCall.Month + "/" + recievedCall.Day,
                Date = new PersianDateTime(int.Parse(recievedCall.Year), int.Parse(recievedCall.Month), int.Parse(recievedCall.Day)).ToString().Substring(0, 10),
                Time = recievedCall.Hour + ":" + recievedCall.Minute,
                //DateTime = new PersianDateTime(int.Parse(recievedCall.Year), int.Parse(recievedCall.Month), int.Parse(recievedCall.Day), int.Parse(recievedCall.Hour), int.Parse(recievedCall.Minute), 0).ToString(),
                Comments     = recievedCall.Comments,
                DepartmentId = recievedCall.DepartmentId
            };

            if (caller == null)
            {
                var callerId = Guid.NewGuid();
                db.Callers.Add(new Caller
                {
                    Id       = callerId,
                    Name     = recievedCall.CallerName,
                    Comments = recievedCall.CallerComments,
                    Tel      = recievedCall.CallerTel,
                });
                db.SaveChanges();

                newRecievedCall.CallerId = callerId;
            }
            else
            {
                newRecievedCall.CallerId = caller.Id;
            }

            newRecievedCall.IsCallingFromOutside = recievedCall.IsCallingFromOutside;
            db.RecievedCalls.Add(newRecievedCall);

            //string datetime = recievedCall.Year + "//" + recievedCall.Month + "//" + recievedCall.Day + " " + recievedCall.Hour + ":" + recievedCall.Minute;
            db.SaveChanges();
            ViewBag.ModelOperatedId = newRecievedCall.Id.ToString();
            return(RedirectToAction("Index"));
        }
        public ActionResult Delete(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RecievedCall recievedCall = db.RecievedCalls.Include(r => r.Caller).Include(r => r.Department).FirstOrDefault(r => r.Id == id);

            if (recievedCall == null)
            {
                return(HttpNotFound());
            }
            return(View(recievedCall));
        }
        public ActionResult Edit(RecievedCall recievedCall)
        {
            var  caller = db.Callers.Where(c => c.Name.Equals(recievedCall.Caller.Name) && c.Tel.Equals(recievedCall.Caller.Tel)).FirstOrDefault();
            Guid callerId;

            //recievedCall.CallerId = caller.Id;
            //recievedCall.Caller.Id = caller.Id;

            // caller has changed so it has to be added
            if (caller == null)
            {
                callerId = Guid.NewGuid();
                db.Callers.Add(new Caller
                {
                    Id       = callerId,
                    Name     = recievedCall.Caller.Name,
                    Comments = recievedCall.Caller.Comments,
                    Tel      = recievedCall.Caller.Tel,
                });
                db.SaveChanges();
                ViewBag.ModelIdBeingOperated = callerId;
            }
            else
            {
                callerId = caller.Id;
            }

            recievedCall.CallerId = callerId;


            if (ModelState.IsValid)
            {
                recievedCall.Caller          = null;
                db.Entry(recievedCall).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.Departments = db.Departments.Select(d => new SelectListItem
            {
                Text     = d.Name,
                Value    = d.Id.ToString(),
                Selected = d.Id == recievedCall.DepartmentId
            });
            return(View(recievedCall));
        }
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RecievedCall recievedCall = db.RecievedCalls.Include(r => r.Caller).Where(r => r.Id == id).FirstOrDefault();

            ViewBag.Departments = db.Departments.Select(d => new SelectListItem
            {
                Text     = d.Name,
                Value    = d.Id.ToString(),
                Selected = d.Id == recievedCall.DepartmentId
            });
            if (recievedCall == null)
            {
                return(HttpNotFound());
            }

            return(View(recievedCall));
        }